私は iDevice プログラミングを学び、プロジェクトの他のものとのインターフェースに使用される新しいサードパーティ ライブラリの使用法を学ぼうとしています。悲しいかな、このライブラリは文書化されておらず、1 つのサンプル プログラムがどのように機能するかを理解するのに苦労しています (私のチームがどのように機能するかについての 2 つの主要な理論は、「ブードゥー」と「忍者の魔法」です)。
私は、コア機能の一部であると思われる部分 (サンプルアプリをプロフェッショナルに見せるために追加されたすべての機能の一部ではなく) を新しいプロジェクトにゆっくりとコピーし、それらを機能させようとしています。 . 現在、次のエラーが発生しています。*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSTimer timerWithTimeInterval:block:repeats:]: unrecognized selector sent to class 0x144e790'
タイマーに関係する元のファイルからすべてをコピーしました。ここで再現します。
@property (nonatomic) NSTimeInterval currentTime;
...
@synthesize currentTime;
// lots of other stuff that has nothing to do with Timers
-(void)setCurrentTime:(NSTimeInterval)time {
[self willChangeValueForKey:@"currentTime"];
currentTime = time;
[self didChangeValueForKey:@"currentTime"];
}
追加する必要があるのはどのセレクターですか?
編集:
tc. の要求で、私はライブラリでそのメソッドを探しに行き、それ自体のファイルでこれを見つけました:
#import <Foundation/Foundation.h>
/**
* A block based extension for NSTimer
*/
@interface NSTimer (EMAdditions)
/**
* Allows you set a block for execution when the timer fires.
* @param interval The time interval
* @param block The block to execute
* @param repeat A flag to indicate if the block should continuously repeat
*/
+(NSTimer *)timerWithTimeInterval:(NSTimeInterval)interval block:(void(^)(void))block repeats:(BOOL)repeat;
@end
ライブラリのソース コード (.a ファイルが大きいだけ) にはアクセスできませんが、このメソッドの実装は必要ないのでしょうか? これを含むファイルの #import を試みましたが、問題は解決しませんでした。