面试题答案
一键面试- OBJC_ASSOCIATION_ASSIGN:
- 作用:弱引用关联对象。不增加对象的引用计数,当被关联对象释放时,关联关系不会阻止其释放,关联属性会被自动设置为nil,类似弱引用指针。
- OBJC_ASSOCIATION_RETAIN_NONATOMIC:
- 作用:非原子性强引用关联对象。会增加对象的引用计数,持有被关联对象,且访问该关联对象时不进行原子性操作,性能较高,但在多线程环境下可能存在数据竞争问题。
- OBJC_ASSOCIATION_COPY_NONATOMIC:
- 作用:非原子性复制关联对象。会对被关联对象进行复制操作,生成一个新的副本并关联,同时增加副本对象的引用计数,访问该关联对象时不进行原子性操作,多线程环境下有数据竞争风险。
- OBJC_ASSOCIATION_RETAIN:
- 作用:原子性强引用关联对象。增加对象的引用计数,持有被关联对象,并且访问该关联对象时进行原子性操作,保证多线程环境下数据访问的安全性,但性能相对非原子性操作略低。
- OBJC_ASSOCIATION_COPY:
- 作用:原子性复制关联对象。对被关联对象进行复制操作,生成新的副本并关联,增加副本对象的引用计数,同时访问该关联对象时进行原子性操作,确保多线程环境下数据的安全访问。