【发布时间】:2010-08-03 11:16:06
【问题描述】:
我有以下类别:
@interface UIViewController (Additions)
- (void)exampleMethod;
@end
-----
#import "UIViewController+Additions.h"
@implementation UIViewController (Additions)
- (void)exampleMethod {
NSLog(@"Example.");
}
@end
我还有以下抽象类:
@interface DFAbstractViewController : UIViewController
@end
-----
#import "DFAbstractViewController.h"
#import "UIViewController+Additions.h"
@implementation DFAbstractViewController
@end
这是具体的类:
#import "DFAbstractViewController.h"
@interface DFConcreteViewController : DFAbstractViewController
@end
-----
#import "DFConcreteViewController.h"
@implementation DFConcreteViewController
- (void)viewDidLoad {
[self exampleMethod];
}
@end
好的。所以我的理解是具体类DFConcreteViewController 可以使用从其超类DFAbstractViewController 中的类别导入的方法。这是正确的,因为方法调用按预期工作。
问题是 Xcode 给了我以下警告:'DFConcreteViewController' may not respond to '-exampleMethod'。
我不明白编译器对这个方法及其对DFConcreteViewController 的可用性是如何不完全清楚的?也许我对类别有误解?
【问题讨论】:
标签: iphone objective-c ipad categories