Cra*_*tis 1 iphone macos xcode properties objective-c
嘿伙计们,我有一个定义了许多ObjC-2.0属性的协议,如下所示:
@protocol Repeatable <NSCoding>
@required
@property (nonatomic, retain) Date *startDate;
@property (nonatomic, retain) Date *endDate;
@end
Run Code Online (Sandbox Code Playgroud)
我有另一个实现协议的类:
@interface AbstractRepeatable : NSObject <Repeatable>
Run Code Online (Sandbox Code Playgroud)
最后,在AbstractRepeatable中,我正在实现一个由协议定义的方法:
- (BOOL)isEqualToRepeatable:(Repeatable *)r {
if (r.startDate != startDate) // Compiler error here
return NO;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
例如,排除了比特和碎片,但是在编译时,我会在上面提到的行上收到熟悉的"成员'startDate'请求,而不是结构或联合".AbstractRepeatable显然包含Repeatable标头,否则协议将不可见,所以我不知道我缺少哪个部分.
在您的isEqualToRepeatable:方法中,您将Repeatable视为一个类,而不是协议.尝试使用以下内容.之后一切都应该正常工作.我测试了它.(手指交叉,我看起来不会傻.)
- (BOOL)isEqualToRepeatable:(id<Repeatable>)r {
if (r.startDate != startDate) // Compiler error here
return NO;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |