我按以下方式设置了单例类
我的.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,我通过发送一个字典对象并使用通知名称来调用该方法。
编辑:我确实尝试过阅读并在其他似乎没有帮助的线程上实施建议。
答案 0 :(得分:3)
您似乎调用了类方法而不是实例方法。
所以你最有可能做到了:
[Singleton myMethod:...];
更正您的电话:
[[Singleton sharedInstance] myMethod:...];
编辑:
噢,我现在意识到了一个更糟糕的问题;你的单身工厂坏了。没有你回来的实例。试试这个变种。它不是线程安全的,但对你来说可能已经足够了。
+ (Singleton*)sharedInstance
{
static Singleton *instance = nil;
if (nil == instance)
{
instance = [[Singleton alloc] init];
}
return instance;
}