静态iOS库中无法识别的选择器调用工厂方法

Posted

技术标签:

【中文标题】静态iOS库中无法识别的选择器调用工厂方法【英文标题】:Unrecognized selector calling factory method in static iOS library 【发布时间】:2013-10-22 09:32:45 【问题描述】:

目前我正在实现一个静态库,如果我在测试应用程序中“按原样”使用代码,一切正常,但如果我将代码编译到静态库,我会得到一个无法识别的选择器,这是我的代码:

+ (id)sharedInstance DEFINE_SHARED_INSTANCE_USING_BLOCK(^ return [[self alloc] init]; );

#define DEFINE_SHARED_INSTANCE_USING_BLOCK(block) \
static dispatch_once_t pred = 0; \
__strong static id _sharedObject = nil; \
dispatch_once(&pred, ^ \
_sharedObject = block(); \
); \
return _sharedObject; \

打电话

[ZanoxTrackingEvent sharedInstance]

结果

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[ZanoxTrackingEvent sharedInstance]: unrecognized selector sent to class 0x27ee8”

我现在很绝望,我尝试了几个单例实现。

【问题讨论】:

【参考方案1】:

当您的文件系统中的路径错误时,可能会发生此错误。这就是我的情况。

【讨论】:

以上是关于静态iOS库中无法识别的选择器调用工厂方法的主要内容,如果未能解决你的问题,请参考以下文章

如何解决“发送到实例的无法识别的选择器”?

Swift:手势识别器无法识别的选择器发送到实例

链接静态库时将无法识别的选择器发送到实例?

UIButton 的 IBAction 导致无法识别的选择器发送到实例错误 (iOS)

setNeedsStatusBarAppearanceUpdate 无法识别的选择器

Swift 3:将无法识别的选择器发送到手势识别器实例