我有如下实例化一个单例类:Objective-C的单只响应类方法
#import "FavoritesManager.h"
static FavoritesManager *sharedFavoritesManager = nil;
@implementation FavoritesManager
+ (id)sharedManager {
@synchronized(self) {
if (sharedFavoritesManager == nil) {
sharedFavoritesManager = [[self alloc] init];
}
}
return self;
}
这返回一个对象,但由于某些原因,它只会类的方法作出回应。如果我把一个实例方法,我得到
+[FavoritesManager testMethod]: unrecognized selector sent to class 0x59198
对于它的价值,这是TestMethod的样子:
- (void)testMethod {
NSLog(@"Test");
}
,我敢保证,它的接口中声明。我在其他类中使用了这个确切的代码,它的作用就像一个魅力,所以我真的不明白问题在这里。有一点是可疑的是+[FavoritesManager testMethod]
的加号,但我无法解释它。有任何想法吗?
编辑:我混淆了公共/私人和类/方法术语。感谢所有指出这一点的人。
您将公共方法与Class方法和私有方法混淆在实例方法中。 – dbrajkovic 2012-03-01 21:09:08