NSTimerの時間指定は基本的に秒単位である。
例えば
+(NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
のsecondsは秒単位なわけだが、0より大きく1より小さな数を指定すると1秒以下でも指定できる。
ここで、仕様書を読むと「負数を与えるとその負号を取った値を0.1ms単位として使う」と書いてある。これをそのまま理解すると例えば、-1000と指定すると1000*0.1=100msを指定したことになるはずである。
がしかし、実際にはそうはならない。
非常に短い時間でタイマーがかかってしまう。
NSTimerそのもののバグか、仕様書の間違いである。
少なくともiOS5.1まではこのとおりだ。
仕方ないので、0.??の値を使っている。
早々に正しい仕様を公開して欲しいところ。というか、仕様書通りに動くように直してくれ、Apple。
0 件のコメント:
コメントを投稿