自動參考計數

通過自動引用計數(ARC),編譯器可以在需要它們的地方插入 retainreleaseautorelease 語句,因此你不必自己編寫它們。它還為你編寫 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
}