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

时间:2013-10-22 09:32:46

标签: ios objective-c singleton static-libraries

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

+ (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]:无法识别的选择器发送到类0x27ee8'

我现在非常绝望,我尝试了几个Singleton实现。

1 个答案:

答案 0 :(得分:0)

如果文件系统中的路径错误,则会发生此错误。这就是我的情况。