기존의 DataManager 코드에 대한 코드를 리팩토링하고 싶습니다. 코드베이스가 너무 커서 데이터 액세스 개체 패턴을 사용하여 별도의 파일로 분할하려고합니다. 그래서 내가하고 싶은 것은하위 클래스의 카테고리 선언
BaseDAO
입니다. 그런 다음 개별 DAO가 해당 클래스로부터 상속 받도록하십시오. 그래서 나는
SomeItemDAO.m에서
BaseDAO : NSObject
SomeItemDAO : BaseDAO
을 가지고, 나는
@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 나는 내 글을 편집했다. 컴파일러가 불평하는 두 가지 방법 모두. sharedInstance 및 someTestMethod는 DataManager에 정의되어 있지 않습니다. – Crystal
@interface SomeItemDAO (DataManager) 및 BaseDAO.m 구현을 게시 할 수 있습니까? – iDev