0
下面是一個代碼示例來說明我的意思:爲什麼要在Objective-C中自動釋放自己的屬性?
- (void) setup {
[self setupObjectModel];
[self setupStoreCoordinator];
}
- (void) setupObjectModel {
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
self.managedObjectModel = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] autorelease];
}
但是,爲什麼不釋放而不是autorelease? –
如果你釋放而不是'autorelease',在'release'調用結束時,對象將檢查它的'retaincount'並且看到它是零,並且會在** managedObjectModelis之前調用'dealloc' ** '二傳手將有機會保留它。然後你的財產將指向一個解除分配的對象,並在第一次提升'SEGFAULT'。 – Olotiar
如果您仍然有疑問,請提出問題,我會盡力回答。否則,請將此答案標記爲已接受。 – Olotiar