XCode 4:运行时出错“无法识别的选择器发送到实例”

时间:2011-04-27 12:35:19

标签: ios static singleton

我开发了一个静态库并构建了我的lib.a。

当我在iOS项目中使用此库(使用-ObjC构建的iPhone应用程序和链接器的-all_load标志)时,我在运行时收到此错误:

unrecognized selector sent to instance

当我尝试调用类方法时会发生此错误。

+ (MyObject *) GetSingleton;

有关信息,我在调用实例方法时不会出错。

- (void) Log;

你对这个问题有所了解吗?

2 个答案:

答案 0 :(得分:0)

创建单身时,请尝试:

+ (MyObject *)GetSingleton {
    static MyObject* singletonInstance; 

    @synchronized(self) {
        if (!singletonInstance)
            singletonInstance = [[MyObject alloc] init]; 
    }

    return singletonInstance;
}

希望有所帮助。

答案 1 :(得分:0)

嗯,我修复了重新创建项目的问题!

我不知道为什么,我的项目为类方法做了错误的链接,而不是例如方法。

现在,通过新项目和链接到我的静态库,所有在运行时都可以。

也许这是一个问题,因为我构建了多个静态库,可能是一个错误的缓存或依赖...

感谢您的回答开发人员!