簡単なコードは次のとおりです。
// let's assume that I have to allocate this variable with alloc/init
NSString *someString = [[NSString alloc] initWithFormat:"%@", @"someString"];
NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{
[someClass someFunction: someString];
}];
[queue addOperation:op]
[someString release];
someString が解放されてから nsblockoperation が実行されると、このコードはクラッシュします。これを防ぐためのベストプラクティスは何ですか?
ありがとうございました。
編集:ARCは私の決定ではないため、選択ではありません。MRCでこれを回避する方法はありますか?
EDIT2:次のコードはどうですか? それはうまくいくでしょうか?
// let's assume that I have to allocate this variable with alloc/init
NSString *someString = [[NSString alloc] initWithFormat:"%@", @"someString"];
[someString retain]
NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{
[someClass someFunction: someString];
[someString release]
}];
[queue addOperation:op]
[someString release];