我正在尝试学习 iDevice 编程并学习使用新的 3rd-party 库,该库将用于与项目的其他一些东西交互。唉,这个库的文档记录很差,而且我很难弄清楚一个示例程序是如何工作的(我团队关于它如何工作的两个主要理论是“巫毒”和“忍者魔法”)。
我一直在慢慢地将看起来像是核心功能一部分的部分(而不是为了使示例应用程序看起来专业而附加的所有花里胡哨的部分)复制到一个新项目中,并试图让它们工作. 现在我收到这个错误:*** 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,但这并没有解决问题。