目前我正在实现一个静态库,如果我在测试应用程序中“按原样”使用代码,一切正常,但是如果我将代码编译为静态库,我会得到一个无法识别的选择器,这是我的代码:
+ (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”
我现在很绝望,我尝试了几个单例实现。