gpt4 book ai didi

objective-c - 使用 ARC、lifetime qualifier assign 和 unsafe_unretained

转载 作者:可可西里 更新时间:2023-11-01 03:06:31 34 4
gpt4 key购买 nike

我对这两个限定词有点困惑...使用 ARC 而不是使用 weak (即如果我需要支持 iOS 4)我可以使用 unsafe_unretained 失去自动零功能......最终结果似乎类似于赋值

  • 我可以将 unsafe_unretainedassign 交换吗?
  • 这些限定符是一回事吗?

有关此论点的 Apple 文档的任何链接都将非常有趣...我只能找到几行 here

最佳答案

Clang 的 technical specification of ARC详细介绍了限定符的工作原理。

但是,回答你的问题:assign__unsafe_unretained 不是一回事。 assign 是一个属性属性,告诉编译器如何合成属性的 setter 实现,而 __unsafe_unretained 是一个所有权限定符,告诉 ARC 如何插入 retain/释放调用。但它们是相关的:当声明一个属性时,assign 意味着 __unsafe_unretained 所有权。

在 ARC 之前,assign 是默认的属性(property)所有权限定词;但是在启用 ARC 的情况下,可保留对象指针类型 的默认值是 strong。 (对于标量和其他指针类型,assign 仍然是默认值。)

关于objective-c - 使用 ARC、lifetime qualifier assign 和 unsafe_unretained,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8397511/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com