所以我正在iphone上創建我的第一個opengl es應用程序。我想autorelease一個對象,那時我注意到我似乎無法找到autorelease池的位置。Iphone開放式應用程序和自動釋放池
1)是自動釋放池已經爲我的iPhone OpenGL ES的應用程序創建的? 2)如果它已經爲我創建了多久池被排幹?
所以我正在iphone上創建我的第一個opengl es應用程序。我想autorelease一個對象,那時我注意到我似乎無法找到autorelease池的位置。Iphone開放式應用程序和自動釋放池
1)是自動釋放池已經爲我的iPhone OpenGL ES的應用程序創建的? 2)如果它已經爲我創建了多久池被排幹?
你有一個main.m文件?如果您使用的是標準GL ES應用程序模板,你應該看到:
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
如果是這樣,那麼你有一個自動釋放池,它被倒掉每次你去通過runloop。
謝謝這是我需要的信息。我並不完全理解它每次在runloop中如何被排空,但我會認爲這段代碼隱藏在我看不見的超類中的某個地方。 – Mel 2009-09-28 20:28:36
這有點令人困惑。我這裏還有一些鏈接: http://stackoverflow.com/questions/798950 – mahboudz 2009-09-28 20:45:37
http://stackoverflow.com/questions/581828/autorelease-scope/583292#583292注意的部分:運行循環創建一個新的自動釋放在它發送一個事件(例如applicationDidFinishLaunching :)並在事件結束時銷燬該池時順便提及, – mahboudz 2009-09-28 20:48:03