私は他人のコードに取り組んでいます。コードの行を見つけたこのコードでNSThreadを使用する
[NSThread detachNewThreadSelector:@selector(myMethod) toTarget:self withObject:nil];
私は質問する2つの質問があります。
- そのメソッドを呼び出すだけです。なぜNSThreadをここで使用していますか?
- コードを実行しているときに、このメソッドが呼び出されないことがあります。メソッドの中にブレークポイントを置くと、常に呼び出されます。しかし、ブレークポイントを削除すると、メソッドが呼び出されないことがあります。これはNSThreadの問題ですか?
最近は@autoreleasepool {...}を使うべきですが、これは良いアドバイスです。 –
ARC '@ autoreleasepool'ブロックを使用する場合、その方法はありますが、それ以外の場合は大丈夫です:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAutoreleasePool_Class/Reference /Reference.html。 '@ autorelease'ブロックはより効率的です。 – basvk
@autoreleasepoolブロックは、実際にはさらに性能が優れています。追加のオブジェクトの作成やいくつかのobjective-Cメソッド呼び出しを排除します。彼らは、シンタックス・シュガーだけではありません。 –