所以我想重構一些代碼到我們現有的DataManager代碼。代碼庫太大,我們想用數據訪問對象模式將它分割成單獨的文件。所以我想要做的是有一個在子類上聲明一個類別
BaseDAO
然後有個別DAO從該類繼承。所以,我有
BaseDAO : NSObject
SomeItemDAO : BaseDAO
在
SomeItemDAO.m,我有
@implementation SomeItemDAO (DataManager)
,但我得到了警告,「類型正在實施這也將由其主類中implmeented的方法即使它不是同樣的方法名稱我讀了如果你有類似的東西
@interface NSArray (MyCAtegory)
你不會得到該編譯器警告。
如果是這樣的話,我該如何處理我的情況?我做不到
@interface BaseDAO (DataManager)
編譯器說它無法找到接口BaseDAO。有什麼想法嗎?謝謝。
編輯:
+ (SomeItemDAO *)sharedInstance {
static SomeItemDAO *instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[SomeItemDAO alloc] init];
});
return instance;
}
- (void)someTestMethod {
NSLog(@"test method from condition");
}
編譯器告訴你類將實現什麼方法? –
@rob mayoff我編輯了我的帖子。編譯器正在抱怨這兩種方法。 DataManager中未定義sharedInstance和someTestMethod。 – Crystal
您可以發佈您的@interface SomeItemDAO(DataManager)和BaseDAO.m實現嗎? – iDev