MST

星途 面试题库

面试题:Objective-C中关联对象的关联策略语法有哪些

请列举出Objective-C关联对象(Associated Object)常用的关联策略,并简单描述每种策略的作用。
22.3万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

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