美文网首页搬砖
iOS属性修饰符的作用

iOS属性修饰符的作用

作者: 风中尘埃飘过 | 来源:发表于2018-07-24 17:59 被阅读227次
strong 修饰符(与retain的作用基本相同)

1.strong是一个属性的默认修饰符。
2.strong修饰的对象在引用计数为0时被销毁。(强引用)

weak 修饰符

1.弱引用声明类型。
2.当weak修饰的对象时,对象的引用计数为0时,对象释放的同时指针地址置为nil。一般用来打破循环引用和修饰delegate。

assign 修饰符

1.弱引用声明类型,一般用来修饰基本数据类型。
2.当assign修饰的对象时,对象的引用计数为0时,对象释放之后,指针地址不会被置为nil。就会出现野指针。所以我们一般不能使用assign修饰对象。
3.那为什么可以用assign修饰基本数据类型?因为基础数据类型一般分配在栈上,栈的内存会由系统自己自动处理,不会造成野指针。

copy 修饰符

1.copy修饰的对象是不可变的。
2.相当于在调用对象的set方法时新拷贝了一份。

@property (nonatomic, copy) NSArray *datas;

NSMutableArray *datas = [NSMutableArray arrayWithObject:@"data"];
self.datas = datas //相当于 self.datas = [datas copy]; 所以说就算你在后面修改datas里面的对象个数,也不会影响self.datas里面的对象个数。这也是为什么我们在使用NSString属性的时候建议使用copy修饰符,这样能防止NSString在使用过程中被修改的问题。

atomic 修饰符

1.能保证线程安全,缺点是性能低。

nonatomic 修饰符

1.允许多个线程同时访问,不能保证线程安全。性能高。系统中一般都是使用nonatomic,特殊情况下才会使用atomic。

readwrite 修饰符

1.readwrite是默认的修饰符。不给属性添加相关的属性,这个对象都是可以进行读写操作的
2.readwrite修饰的属性,系统会自动生成set和get方法。

readonly 修饰符

1.readonly修饰的属性,系统只会生成get方法,不会生成set方法。

相关文章

  • iOS 属性修饰符

    iOS属性问题 属性修饰符的作用 iOS5之前是MRC, 内存需要程序员管理,iOS之后是ARC,除非特殊情况(例...

  • ios属性修饰符的使用

    iOS中属性修饰符 ios中的主要属性修饰符包含: copy assign retain strong weak ...

  • iOS中属性修饰符及区别

    iOS中属性修饰符 ios中的主要属性修饰符包含: copy assign retain strong weak ...

  • 关于iOS基本属性修饰符的理解(weak篇)

    属性修饰符,顾名思义就是修饰属性的符号,针对不同的属性和使用场景有不同的属性修饰符作用:1、weak属性修饰符用来...

  • iOS属性修饰符的作用

    strong 修饰符(与retain的作用基本相同) 1.strong是一个属性的默认修饰符。2.strong修饰...

  • iOS中修饰符的简单理解和使用

    iOS中定义属性@property需要属性修饰符。 ARC环境下:修饰符assign、strong、weak、co...

  • OC属性的修饰符

    属性修饰符是什么?有什么作用? 属性修饰符,顾名思义就是对属性进行修饰的符号。不同修饰符修饰的属性会表现出不一样的...

  • iOS中属性修饰符的作用

    属性修饰符简述 ios5之前是MRC,内存需要程序员进行管理,ios5之后是ARC,除非特殊情况,比如C框架或者循...

  • ios中属性修饰符的作用

    属性修饰符简述 ios5之前是MRC,内存需要程序员进行管理,ios5之后是ARC,除非特殊情况,比如C框架或者循...

  • 2017-11-06 - 草稿

    iOS属性修饰符 作为一个iOS入手新员,对iOS很多方面都是一知半解,最近看了一下iOS关于熟悉性修饰符的相...

网友评论

    本文标题:iOS属性修饰符的作用

    本文链接:https://www.haomeiwen.com/subject/bbyymftx.html