use*_*227 15 memory-management objective-c instance-variables ios
在Obj-C中,属性可以配置为弱/强.实例变量.喜欢以下 -
@interface MyClass {
NSObject *a;
}
Run Code Online (Sandbox Code Playgroud)
MyClass的对象是保持弱引用a还是强引用或其他什么?我认为iVar在其对象发布之前不会发布.为什么我们不为iVar属性指定弱/强?
Ani*_*ese 13
您的问题激发了我的灵感,并对ObjectiveC内存管理进行了深入研究.我想与你分享一些我从Apple Doc获得的东西.
实例变量的默认行为
默认情况下,实例变量保持对对象的强引用
为什么我们不为iVar属性指定弱/强?
默认情况下,局部变量和非属性实例变量保持对对象的强引用.没有必要明确指定强属性,因为它是默认属性.
只要该变量在范围内,或者直到将其重新分配给另一个对象或nil,变量就会保持对对象的强引用.如果您不希望变量维护强引用,可以将其声明为__weak,如下所示:
NSObject * __weak weakVariable;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4889 次 |
| 最近记录: |