0
スレッド内でループを実行できるオブジェクトを構築したい。 私はNSThreadを使用してスレッドのループを実行し、時には正常に動作し、時にはエラーメッセージが表示されます。Objective-C Loop in NSThread
Uncaught exception NSInvalidArgumentException, reason: Tried to add nil value for key 'NSArgumentDomain' to dictionary.
は、私はそれをどのように修正すればよいですか?または、NSthreadチュートリアルを参考にしてください。
#import <Foundation/Foundation.h>
@interface ThreadTest: NSObject
-(void) run;
-(void) goThread;
@end
@implementation ThreadTest
-(void) run {
@autoreleasepool {
int i;
for (i = 1; i < 5; i++) {
NSLog (@"Bar");
}
NSLog (@"end of loop");
}
}
-(void) goThread {
[NSThread detachNewThreadSelector: @selector(run)
toTarget: self
withObject: nil];
}
int main(void) {
@autoreleasepool {
ThreadTest *t = [[ThreadTest alloc] init];
[t goThread];
}
return 0;
}
私は理解していません、あなたはこれを説明できますか? – Sam
私はあなたのエラーログを見てあなたの質問に誤解しました。おそらくこれはスレッドセーフではないため、複数のスレッドが同時にアイテムにアクセスしようとしている可能性があります。これに関する複数の似たような質問があります。これを見てみましょう:http://stackoverflow.com/questions/12091212/understanding-nsrunloop –
私は、タートルやウサギのレースプログラムのようなレースゲームを作って、客観的な - cのスレッドを理解したいと思います。 Javaのスレッドと同じように使いやすいものではありません。私はこれについてもっと学ぶ必要があると思う。どうもありがとうございました。 – Sam