无法识别的选择器发送到类singleton arc

时间:2013-03-15 04:34:06

标签: ios objective-c singleton automatic-ref-counting unrecognized-selector

我按以下方式设置了单例类

我的.h有以下代码

 + (Singleton *)sharedInstance;

.m如下所示

+ (Singleton *)sharedInstance
{
        if (nil == sharedInstance) {
           sharedInstance = [[Singleton alloc] init];
    }
    return sharedInstance;
}

当我尝试从另一个类访问Singleton类中的方法时,我得到以下错误

  reason: '+[Singeleton myMethod:]: unrecognized selector sent to class

myMethod存在于我的Singleton类中。

Single Class使用ARC,而调用类是Non-ARC。

我不确定这是否对此有所帮助。

myMethod是一个NSNotification,我通过发送一个字典对象并使用通知名称来调用该方法。

编辑:我确实尝试过阅读并在其他似乎没有帮助的线程上实施建议。

1 个答案:

答案 0 :(得分:3)

您似乎调用了类方法而不是实例方法。

所以你最有可能做到了:

[Singleton myMethod:...];

更正您的电话:

[[Singleton sharedInstance] myMethod:...];

编辑:

噢,我现在意识到了一个更糟糕的问题;你的单身工厂坏了。没有你回来的实例。试试这个变种。它不是线程安全的,但对你来说可能已经足够了。

+ (Singleton*)sharedInstance 
{
    static Singleton *instance = nil;
    if (nil == instance) 
    {
        instance = [[Singleton alloc] init];
    }
    return instance;
}