iPhoneでNSThreadを使用したいappilicationを作成したいと思います。私は一つのスレッドは、すべてのタッチと他のユーザーとの対話とNSTimerを扱う第二のスレッドを処理することを望むiPhone SDKアプリケーションのNSThread、NSTimer、およびAutoreleasePool
[NSThread detachNewThreadSelector:@selector(doThread:)
toTarget:self
withObject:nil];
を使用してスレッドを1つ作成しました。だから、doThread()で、私は
-(void) doThread:(NSString *)poststring {
NSLog(@"create thread:");
[lock lock];
T1 = [NSTimer scheduledTimerWithTimeInterval:(5)
target : self
selector:@selector(onTimer)
userInfo : nil
repeats : YES];
NSLog(@"after timer");
usleep(1);
[lock unlock];
}
In onTImer,
-(void)onTimer
{
NSLog(@"in timer");
}
は、今私はNSTimerのにOnTimerメソッドを呼び出すことができない、などのNSTimerを割り当てています。しかし、私は、ログ内に印刷された "after timer"を見ることができます。スレッド内でNSTimerを使用できないものは何ですか?
これは実行中に取得することもできます。
NSAutoreleaseNoPool(): Object 0xd15880 of class __NSCFDate autoreleased with no pool in place - just leaking
Stack: (0x305a2e6f 0x30504682 0x30525acf 0x27b5 0x3050a79d 0x3050a338 0x926ae155 0x926ae012)
私を助けてください。 ありがとうございます。
あなたはおそらく、私たちにあなたがタッチを扱うほとんどのアプリが必要がない場合、このようなマルチスレッドのアプローチを持ちたい理由についてもう少し教えてくださいそのような長さに行く。 – mahboudz