OC属性关键字

作者: bugLife丶 | 来源:发表于2019-07-25 15:31 被阅读0次

1.读写权限:readonly,readwrite(默认) 2.原子性: atomic(默认),nonatomic。atomic读写线程安全,但效率低,而且不是绝对的安全,比如如果修饰的是数组,那么对数组的读写是安全的,但如果是操作数组进行添加移除其中对象的还,就不保证安全了。 3.引用计数:

retain/strong

assign:修饰基本数据类型,修饰对象类型时,不改变其引用计数,会产生悬垂指针,修饰的对象在被释放后,assign指针仍然指向原对象内存地址,如果使用assign指针继续访问原对象的话,就可能会导致内存泄漏或程序异常

weak:不改变被修饰对象的引用计数,所指对象在被释放后,weak指针会自动置为nil

copy:分为深拷贝和浅拷贝 浅拷贝:对内存地址的复制,让目标对象指针和原对象指向同一片内存空间会增加引用计数 深拷贝:对对象内容的复制,开辟新的内存空间

可变对象的copy和mutableCopy都是深拷贝 不可变对象的copy是浅拷贝,mutableCopy是深拷贝 copy方法返回的都是不可变对象

@property (nonatomic, copy) NSMutableArray * array;这样写有什么影响? 因为copy方法返回的都是不可变对象,所以array对象实际上是不可变的,如果对其进行可变操作如添加移除对象,则会造成程序crash

相关文章

  • OC语言之属性关键字

    属性关键字 读写权限 readonly readwrite(默认) 原子性 OC中的属性可以修饰成nonatomi...

  • OC属性关键字

    1.读写权限:readonly,readwrite(默认) 2.原子性: atomic(默认),nonatomic...

  • Swift OC 混编 Model类的设置

    在OC中model类的属性大多如下设置(记得要根据需求换关键字,不是本篇重点) 因为OC中属性为nil时并不会引发...

  • 【知识总结】OC中的继承

    关键字 OC中也可以使用上面的关键字设置属性的权限。在OC中,默认情况下,在头文件中实现的是public,在m文件...

  • weak的底层实现原理?

    1.何为weak? weak 是oc中定义对象属性property时用于修饰对象属性的关键字。 2.weak有什么...

  • OC由浅入深系列 之 属性

    一、什么是属性 在OC中,用@property 关键字修饰的类的成员成为属性。 在属性出现之前,声名一个实例变量通...

  • iOS9新特性之常见关键字

    苹果为什么要推出关键字? 迎合swift,swift强语言,OC弱语言,swift必须描述属性有没有值 关键字注意...

  • 访问并修改一个类的私有属性

    在OC中的类会有某些私有属性,这些属性通常写在.m文件中或在.h文件中用@private关键字进行修饰。某些...

  • oc属性关键字整理

    看面试题的经常看到一些关于关键字的问题,在oc中修饰一个属性一般有4种关键词 原子性--- atomic/nona...

  • OC属性常用关键字

    含义: copy 复制内容(深复制),如果调用copy的是数组,则为指针复制(浅复制),仅仅复制子元素的指针。 @...

网友评论

    本文标题:OC属性关键字

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