我的理解是,设置ivar现在保留了分配给它的对象,因为设置变量默认为strong
限定符.由于ivar在其声明的对象的范围内,并且strong
保留变量范围内的对象,这意味着在包含ivar的对象仍处于活动状态时,永远不会释放ivar值.
对吗?
如果是这样的话,我认为在内存管理方面,保留(强)属性和简单ivar之间没有区别了,这是对的吗?
我的理解是,设置ivar现在保留了分配给它的对象,因为设置变量默认为strong
限定符.由于ivar在其声明的对象的范围内,并且strong
保留变量范围内的对象,这意味着在包含ivar的对象仍处于活动状态时,永远不会释放ivar值.
对吗?
如果是这样的话,我认为在内存管理方面,保留(强)属性和简单ivar之间没有区别了,这是对的吗?
如果是变量:
然后,可以将其声明为ivar,而不使用相应的@property
/@synthesize
,并在实现中直接引用它.在类实现文件中声明这个ivar与Encapsulation是内联的.
// MyClass.h
@interface MyClass : ParentClass
@end
// MyClass.m
@implementation MyClass {
NSString *myString;
}
- (void)myMethod {
myString = @"I'm setting my ivar directly";
}
@end
__strong
. nil
;如果它是一个原语,它将被初始化为0
.