OC学习笔记之@property关键字

本文详细解释了Objective-C中@property的作用与用法,包括如何在接口中声明属性,以及在Xcode4.4之后的增强使用方式。同时,文章还列举了@property的参数类型,并提供了在.m文件中实现getter和setter方法的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念:
      @property是一个编译器指令,编译器指令就是用来告诉编译器要做什么
      @property告诉编译器:声明属性的访问器(getter/setter);




用法:
     @property    数据类型     方法名-------------例如@property int name;
     在Xcode4.4之前,@property用来帮我们实现get/set方法的声明






@property使用方法的注意事项
   1.@property只能书写在@interface........@end的对象的声明的方法中
   2.目的就是代替get/set方法,并且@property后面的方法名为属性变量中属性参数去掉下划线之后的部分
      @interface{
             int _a;
       }
       @property int a;//实现了set和get方法的声明相当于:
             -(void)setA:(int)a;
             -(int)a;
       @end




@property的增强使用(Xcode4.4之后)
   1.在4.4之后,可以只是用@property,而不使用@synthesize
      @property int age;//申明和实现了_age的get方法和set方法,并且如果对象属性中没有_age的话,
      系统也会自动生成对象的该属性值。
      .h文件中的@property int score;.m文件中如下实现:
      - (void)setScore:(int) score{
              _score = score;
      }
      -(int)score{
              return _score;
      }
      相当于在.m的文件中自动生成了变量,并且不能被继承
      .m文件:
      #import ”Person.h“
      int _score;//系统自动生成的,并且是私有的,不能被继承
    2.增强型@property下重写get和set方法
      由于set及get方法的是实现在被引用的时候,属性的值是没有经过校验的,所以需要重写set方法进行判断。
      并且实现的时候get和set方法只能实现一个。如果需要都写的话,需要在.m文件中使用@synthesize关键字。






@property参数
   
   总共三类,七个属性值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值