gpt4 book ai didi

objective-c - 委托(delegate)属性声明中的 'weak'和 'assign'有什么区别

转载 作者:IT老高 更新时间:2023-10-28 11:21:40 25 4
gpt4 key购买 nike

这有什么区别:

@property (nonatomic, weak) id  <SubClassDelegate> delegate; 

还有这个:

@property (nonatomic, assign) id  <SubClassDelegate> delegate; 

我想为委托(delegate)使用属性。

最佳答案

weak 之间的唯一区别和 assign是如果对象是 weak指向的属性被释放,则 weak 的值指针将设置为 nil ,这样您就永远不会冒访问垃圾的风险。如果您使用 assign ,这不会发生,所以如果对象从您下面被释放并且您尝试访问它,您将访问垃圾。

对于 Objective-C 对象,如果您处于可以使用 weak 的环境中,那么你应该使用它。

关于objective-c - 委托(delegate)属性声明中的 'weak'和 'assign'有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428500/

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