我是新來的目標c,並試圖瞭解如何/何時autorelease被稱爲。我理解的簡單的例子:這個未來情況返回autorelease目標c中的錯誤?
- (void) foo {
Bar *b = [[[Bar alloc] init] autorelease];
[self doSomething:b];
}
什麼 - 這是一個錯誤,因爲該對象將在離開makeBar的範圍立即釋放?
-(Bar*) makeBar
{
return [[[Bar alloc] init] autorelease];
}
如果調用者做了保留怎麼辦?
Bar *b = [[self makeBar] retain];
感謝, -Eric
這個問題的內容和下面的兩個答案應該在ObjC – ckhan