0
當前我正在實現一個靜態庫,如果我在測試應用程序中使用「原樣」代碼,但一切正常,但如果我將我的代碼編譯爲靜態庫,我得到一個無法識別的選擇,這裏是我的代碼:靜態iOS庫中無法識別的選擇器調用工廠方法
+ (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」
我現在很失望,我試了幾個單例實現。