我有一个DataHandler
类,它的行为类似于单身,它有sharedHandler
对象方法。我在整个项目中使用它,但出于某种原因,我无法在AppDelegate中使用它。
DataHandler.h
#import <Foundation/Foundation.h>
@interface DataHandler : NSObject
+ (id)sharedHandler;
- (void)logout;
@end
DataHandler.m
#import "DataHandler.h"
/**
* Singleton static method
* @return singleton instance
*/
+ (id)sharedHandler {
static DataHandler *sharedHandler = nil;
@synchronized (self) {
if (sharedHandler == nil)
sharedHandler = [[self alloc] init];
}
return sharedHandler;
}
-(void) logout {
// ...
}
@end
AppDelegate.m
#import "AppDelegate.h"
#import "DataHandler.h"
@implementation AppDelegate {
- (void)applicationWillResignActive:(UIApplication *)application {
[[DataHandler sharedHandler] logout];
}
@end
我一直在:
Error: no known class method for selector 'sharedHandler`
Error: no known instance method for selector 'logout'
这种行为的原因是什么?
答案 0 :(得分:3)
您有两个名为DataHandler.h
的文件,而AppDelegate.m
中的导入正在拾取错误的文件。请注意,只要它位于磁盘上的文件夹中,它可能会拾取一个实际上不在您项目中的文件。