【发布时间】:2012-02-14 06:54:25
【问题描述】:
在 ARC 之前,我曾经在不使用属性的情况下在 header 中写入变量:
@interface MyViewController : UIViewController {
NSString *prop1;
}
@end
然后在 .m 文件中我曾经保留/释放:
-(void)initVar {
prop = @"initialized variable";
[prop retain];
}
-(void)dealloc{
[prop release];
}
在尝试了 ARC 一段时间后,我遇到了很多内存管理问题,从某种意义上说,很多对象都被释放了。通过将 ivar 移动到 @property 并使用点符号,我找到了最快(但很脏)的解决方案。
@interface MyViewController : UIViewController
@property(strong) NSString *prop;
@end
我后来添加了一个只读属性,因为不需要在控制器之外访问。 我的问题是,在 ARC 环境中,我怎样才能重写上面的代码来摆脱@property,特别是我关心的是视图控制器,它们可以在应用程序的生命周期中多次获取 alloc/dealloc。
【问题讨论】:
标签: objective-c