“弱”和“弱”有什么区别?并“分配”在委托属性声明中
有什么区别。
@property (nonatomic, weak) id <SubClassDelegate> delegate;
this:和 this:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
我想为委托使用属性
Whats the difference between this:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
and this:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
I want to use property for delegates.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
weak
和assign
之间的唯一区别是,如果weak
属性指向的对象被释放,则weak 的值
指针将被设置为nil
,这样您就不会面临访问垃圾的风险。如果您使用分配
,则不会发生这种情况,因此如果该对象从您下面被释放并且您尝试访问它,您将访问垃圾。对于 Objective-C 对象,如果您处于可以使用
weak
的环境中,那么您应该使用它。The only difference between
weak
andassign
is that if the object aweak
property points to is deallocated, then the value of theweak
pointer will be set tonil
, so that you never run the risk of accessing garbage. If you useassign
, that won't happen, so if the object gets deallocated from under you and you try to access it, you will access garbage.For Objective-C objects, if you're in an environment where you can use
weak
, then you should use it.