自動解放について質問があります。コードは次のとおりです。
int main(int argc, char *argv[]){
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}}
ドキュメントは、 @autoreleasepool{} の最後で、autorelease としてマークされたオブジェクトが解放メッセージを受け取ると述べています。しかし、UIApplicationMain は決して戻りません。つまり、フローが @autoreleasepool の最後に到達することはなく、autorelease としてマークされたオブジェクトは、アプリが終了するまで解放されません。オートリリースの意味はありません.....
私は、iOS システムがいくつかのスレッドを生成すると言う人に尋ねました (1 つのスレッド、1 つの実行ループ)。彼は、実行ループが自動解放プールを作成すると言いました。 . しかし、私たちがメインスレッドを使用するほとんどの状況. だから彼の言うことは私を説得しません.
autorelease を使用する適切な時期はいつですか。長い間混乱していました。
1 つの runloop が終了すると autorelease オブジェクトが解放されるという別のポイントが得られます (メインの runloop はアプリの全期間存在しますか??) ので、よくわかりません..
任意のポイントと関連ドキュメントをいただければ幸いです!!