OC-----属性及点语法

来源:互联网 发布:朴正花网络剧 编辑:程序博客网 时间:2024/05/02 02:17

1

.属性
属性是Objective-C 2.0定义的语法,为实例变量提供了setter、getter⽅方法的默认实现能在⼀定程度上简化程序代码,并且增强实例变量的访问安全性。
属性的声明
使用@property声明属性 例如@property NSString *name;
属性的作用:1。可以自动生成setter以及getter方法(包括方法声明和实现)2.如果没有定义实例变量,则自动生成实例变量 命名原则(_属性名)

@property (nonatomic,retain)NSString *name;//姓名@property (nonatomic,retain)NSString *sex;//性别@property (nonatomic,assign)NSInteger age;//年龄@property (nonatomic,assign)NSInteger number;//学号

2 属性的属性
属性的三大类关键字的作用
1.读写特性:
readonly:只读 属性只会声明和实现getter方法,不会生成setter方法,也就是只能访问和取值,不能够赋值

readwrite:即可读又可写,也就是属性会生成setter方法以及getter方法 这是系统默认的关键字,如果不写读写特性的关键字,那么表示默认的readwrite
setter :指定setter方法的方法名 也就是修改setter方法名
getter:指定getter方法的方法名 也就是修改getter方法名
2。原子特性:(与线程安全有关)
atomic:原子特性 保护线程安全,系统默认的原子特性关键字但是耗费系统资源
nonatomic:非原子特性 不保护线程安全,不作任何处理,只简单生成setter getter方法,不做任何处理(注意:苹果推荐使用)
3.语义特性:
assign:针对于基本数据类型,只是做简单的赋值和取值操作,默认的语义特性
retain:针对于对象类型,retain关键字下得属性其对象的引用计数会+1
copy:针对于对象类型,会拷贝出一个新的对象,拷贝出来新的对象引用计数会+1
3. 点语法的使⽤用
凡是符合系统默认setter、getter书写格式的⽅方法都可以使⽤用点语法。例如:[person1 setName:@”zhangsan”];可以等价写成person1.name = @”zhangsan”;。NSString *name = [person1 name];可以等价写成NSString *name = person1.name;属性是⼀一对getter、setter⽅方法,点语法是属性的另⼀一种调⽤用格式。

0 0
原创粉丝点击