首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在委托属性声明中的“weak”和“assign”有什么区别

在委托属性声明中的“weak”和“assign”有什么区别
EN

Stack Overflow用户
提问于 2012-02-24 17:40:54
回答 1查看 21K关注 0票数 89

这两者有什么不同:

代码语言:javascript
复制
@property (nonatomic, weak) id  <SubClassDelegate> delegate; 

还有这个:

代码语言:javascript
复制
@property (nonatomic, assign) id  <SubClassDelegate> delegate; 

我想对委托使用属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-24 17:49:08

weakassign之间的唯一区别是,如果weak属性指向的对象被释放,那么weak指针的值将被设置为nil,这样您就永远不会有访问垃圾的风险。如果你使用assign,这种情况就不会发生,所以如果对象在你的控制下被释放,而你试图访问它,你就会访问垃圾。

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

票数 156
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9428500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档