Sop*_*unk 4 oop cocoa objective-c cocoa-design-patterns
我有一个协议:
@protocol Gadget <NSObject>
@property (readonly) UIView *view;
- (void) attachViewToParent:(UIView *)parentView;
@end
Run Code Online (Sandbox Code Playgroud)
和一个"抽象"基类,具有以下实现(作为getter,未显示)-(UIView *)view:
// Base functionality
@interface AbstractGadget : NSObject {
UIView *view;
}
@property (readonly) UIView *view;
@end
Run Code Online (Sandbox Code Playgroud)
但是当我Gadget在子类中实现协议时AbstractGadget,如下所示:
// Concrete
@interface BlueGadget : AbstractGadget <Gadget> {
}
- (void) attachViewToParent:(UIView *)parentView;
@end
@implementation BlueGadget
- (void) attachViewToParent:(UIView *)parentView {
//...
}
@end
Run Code Online (Sandbox Code Playgroud)
我收到编译错误告诉我" 警告:属性'视图'需要定义方法'-view'." 我可以使用@dynamic或添加存根方法使其消失:
- (UIView *) view {
return [super view];
}
Run Code Online (Sandbox Code Playgroud)
但我只是想知道我做的是不支持的东西,我不应该做的事情,或者它只是编译器中的限制/错误?
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |