我新的Objective-C和我不知道如果我使用NSAutoreleasePool的正確途徑。這是使用NSAutoreleasePool的正確方法嗎?
如果我想使用自動釋放唯一一次我用:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString *newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool release]; //newText will be released
如果我想使用自動釋放幾次我用:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString *newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool drain]; //newText will be released newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool drain]; //newText will be released newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool release]; //newText will be released
這是好?有沒有內存泄漏?
我覺得無禮是沒有道理的。雖然這是記錄在案,這是非常違反直覺的,到了那裏我從有經驗的程序員可可究竟是誰閱讀文檔,並沒有認爲它的意思是說,聽到了點。我不認爲對於剛接觸這個框架的人來說這是一個不合理的問題。 – Chuck