gpt4 book ai didi

objective-c - +[NSTimer timerWithTimeInterval :block:repeats:]: unrecognized selector sent to class

转载 作者:行者123 更新时间:2023-11-28 22:46:16 28 4
gpt4 key购买 nike

我正在尝试学习 iDevice 编程并且学习使用一个新的第 3 方库,该库将用于与项目的其他一些东西交互。唉,这个库的文档很少,我很难弄清楚一个示例程序是如何工作的(我的团队关于它如何工作的两个主要理论是“voodoo”和“ninja magic”)。

我一直在慢慢地将看起来像是核心功能一部分的部分(而不是为了让示例应用程序看起来更专业而附加的所有附加功能的一部分)复制到一个新项目中,并尝试让他们工作。现在我收到此错误:*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[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,但这并没有解决问题。

最佳答案

作为 tc。指出,这是链接器的问题,不包括库的所有 NSTimer 部分。

解决方案是将 -all_load 标志添加到链接器。

关于objective-c - +[NSTimer timerWithTimeInterval :block:repeats:]: unrecognized selector sent to class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13143335/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com