自动参考计数
通过自动引用计数(ARC),编译器可以在需要它们的地方插入 retain
,release
和 autorelease
语句,因此你不必自己编写它们。它还为你编写 dealloc
方法。
手动内存管理的示例程序与 ARC 一样:
@interface MyObject : NSObject {
NSString *_property;
}
@end
@implementation MyObject
@synthesize property = _property;
- (id)initWithProperty:(NSString *)property {
if (self = [super init]) {
_property = property;
}
return self;
}
- (NSString *)property {
return property;
}
- (void)setProperty:(NSString *)property {
_property = property;
}
@end
int main() {
MyObject *obj = [[MyObject alloc] init];
NSString *value = [[NSString alloc] initWithString:@"value"];
[obj setProperty:value];
[obj setProperty:@"value"];
}
你仍然可以覆盖 dealloc 方法来清理 ARC 未处理的资源。与使用手动内存管理时不同,你不需要调用 [super dealloc]
。
-(void)dealloc {
//clean up
}