アプリケーションでいくつのオートリリースを作成できますか? 制限はありますか?
Google で回答を検索しましたが、有用な情報は得られませんでした。
と
int main(){
NSAutoreleasepool *pool = [NSAutoreleasepool alloc]init];
NSString *str = [NSString alloc]init];
[pool drain];
}
Google では、ほぼすべての記事でこのサンプルを見つけました。上記のコードを Xcode で解析すると、メモリ リークが発生します。代わりに、この方法で str を割り当てると、 NSString *str = [NSString alloc]init]autorelease;
その後、メモリリークは発生しません。
どの方法が正しいです。
また、上記のコードでは、[プールドレイン] ステートメントが実行されると、変数 str が解放されることがわかりました。NSAutoreleasePool の代わりに「@autorelease」キーワードを使用して同じコードを記述すると、どうなりますか。@autorelease を使用すると、[プールのドレイン] のようなステートメントはありません。
私はこのように意味します
int main(){
@autorelease{
NSString *str = [NSString alloc]init];
}
}
ありがとうジテン