iOS面试复习3——关键字

一、@property参数

1、控制set方法的内存管理

retain:release旧值,retain新值(用于OC对象)

assign:直接赋值,不做任何内存管理(默认,用于非OC对象类型)

copy:release旧值,copy新值(一般用于NSString、Block)


2、控制需不需生成set方法

readwrite:同时生成set方法和get方法(默认)

readonly:只会生成get方法


3、多线程管理

atomic:提供多线程安全。是oc使用的一种线程保护技术,是防止在未完成的时候被另外一个线程读取,造成数据错误。而这种机  制是耗费系统资源的,所以在Iphone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。

nonatomic:禁止多线程,变量保护,提高性能。


4、控制set方法和get方法的名称

setter:设置set方法的名称,一定有个冒号:

getter:设置get方法的名称


5、值可否为空

nullable可空类型。

null_resettable来表示setter nullable,但是getter nonnnull。


6、ARC下@property修饰符

strong : 用于OC对象, 相当于MRC中的retain

weak : 用于OC对象, 相当于MRC中的assign

assign : 用于基本数据类型, 跟MRC中的assign一样

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作...
    曾令伟阅读 1,084评论 0 10
  • 一、深复制和浅复制的区别? 1、浅复制:只是复制了指向对象的指针,即两个指针指向同一块内存单元!而不复制指向对象的...
    iOS_Alex阅读 1,454评论 1 27
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,224评论 30 472
  • 设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的...
    small_Sun阅读 460评论 0 4
  • 一年了,对于我来说,初中就是一段刻骨铭心的记忆。每每独自一人回想起那座不大的校园时,总会感慨万千,而且内心会...
    谷梁庸阅读 317评论 0 0