iOS 关键字~@property 修饰符

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shihuboke/article/details/78820470

                     //联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄

                               QQ群:807236138  群称: iOS 技术交流学习群

一、概念

 

1.strong类似于retain,weak类似于assign

 

2.原子性修饰符:atomic | nonatomic

atomic:表示是线程安全的。

nonatomic:表示是非线程安全的,使用此属性性能会提高一些。

系统默认是atomic

 

3.getter和setter修饰符

@property(getter = getMethodName, setter = setMethodName) Object *obj;

这两个属性修饰符用于设置自定义生成的getter和setter方法名,使用之后将不再使用系统默认的setter和getter方法名。

 

4.getter方法。

readonly:表明这个属性只能读不能写,系统只为我们创建一个getter方法,不会创建setter方法

 

5.setter相关修饰符:assign | retain | copy

setter相关的修饰符表明setter方法应该如何实现

 

6.copy:主要用在NSString类型,表示复制内容。

系统默认属性是assign。retain是指针的复制,copy是内容的复制

 

7.读写性修饰符:readwrite | readonly

readwrite:表明这个属性是可读可写的,系统为我们创建这个属性的setter和getter方法。

 

8.readonly:表明这个属性只能读不能写,

系统只为我们创建一个getter方法,不会创建setter方法

 

9.assign:表示直接赋值,

用于基本数据类型(NSInteger和CGFloat)和C数据类型(如int, float, double, char等)另外还有id类型,这个修饰符不会牵涉到内存管理。但是如果是对象类型,使用此修饰符则可能会导致内存泄漏或EXC_BAD_ACCESS错误

 

assign:用于非指针变量。用于基础数据类型(如NSInteger, CGFloat)和C数据类型(int, float, double, char等), 另外还有id类型。

              记住:前面不需要加*的就用assign

 

10.retain:针对对象类型进行内存管理。

如果对基本数据类型使用,则Xcode会直接报错。当给对象类型使用此修饰符时,setter方法会先将旧的对象属性release掉,再对新的对象进行一次赋值并进行一次retain操作

 

retain:用于指针变量。一般用于字符串(NSString, NSMutableString), 数组(NSMutableArray, NSArray),字典对象,视图对象(UIView),控制器对象(UIViewController)等

 

谢谢!!!

展开阅读全文

没有更多推荐了,返回首页