自動參考計數
通過自動引用計數(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
}