@interface ClassA : UITableViewController {
NSString *member;
}
@end
成员声明如上。
如果我用
NSString * astring = [[NSString alloc] initWithString:@"???"];
member = astring;
成员会保留字符串吗?
最佳答案
不,它不会保留它。这是实例变量(也称为 iVar)。它不释放旧对象,也不保留新对象(作为 setter 中典型的声明属性)。
//如果属性
self.member = aString;
//调用 setter,相当于 [self setMember:aString],释放旧值,并向 aString 发送保留(或复制,取决于属性声明)消息。
如果 iVar
member = aString
//没有内存管理。
关于objective-c - 当我在 Obj-C 中定义一个不带 @property 的成员时,向该成员传递值时的操作是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11409157/