私はautoreleasepoolについて読んできましたが、私には少し不明な点があります。私は、autoreleasepoolを使って別々のメモリ管理が必要なスレッドを使っていくつかの機能を持っています。次の例ではiPhoneの自動回収プールと割り当て
が正しい
-(void) doSomething {
NSAutorelease *pool = [[NSAutorelasepool alloc] init];
NSString *myString = @"Hello";
[pool release];
}
これは正しいですか?
またはこれですか?
-(void) doSomething {
NSAutorelease *pool = [[NSAutorelasepool alloc] init];
NSString *myString = [[NSString alloc] initWithString:@"Hello"];
[myString release];
[pool release];
}
私の質問は、自動解放プールのスコープで作成されたオブジェクトが、具体的relasedする必要があるかautorelasepoolがリリースされているときの世話をしている所有していますか?
あなたがごみにしたい 自動解放オブジェクトの束を作成しているときにのみ、独自の自動解放プールを作成する必要がありテオ
実際に彼はスレッドについて話しています。だから、オートリリースプールが必要です。 – taskinoor
オートレリースされたオブジェクトを作成していない場合はどうすればよいですか? – zoul
@zoul、私の答えの最後の部分を確認してください。あなたが同意しないかもしれませんが、私はベストプラクティスに従うことを好むでしょう。 – taskinoor