Ami*_*Sri 19 cocoa protocols properties objective-c
我想定义一个具有很少属性的协议,并且需要在另一个NSObject子类中使用这些属性.请给我链接或示例代码.我需要与10.5合作.
谢谢请检查以下示例代码
@protocol MyProtocol
@property (nonatomic, readonly) id someObject;
@property (nonatomic, getter=isAlive) BOOL alive;
@end
#import "MyProtocol.h"
@interface MyCustomClass : NSObject <MyProtocol>{
}
@end
#import "MyCustomClass.h"
@implementation MyCustomClass
@synthesize someObject,alive;
/*
- (id)someObject {
return nil;
}
- (BOOL)isAlive {
return YES;
}
- (void)setAlive:(BOOL)aBOOL {
}
*/
@end
Run Code Online (Sandbox Code Playgroud)
**补充:使用x86_64架构编译代码工作正常.但如果我将架构更改为i386,则会出现错误,然后我收到以下警告:
MyCustomClass.m:13: error: synthesized property 'someObject' must either be named the same as a compatible ivar or must explicitly name an ivar
error: synthesized property 'alive' must either be named the same as a compatible ivar or must explicitly name an ivar
Run Code Online (Sandbox Code Playgroud)
我只想知道它为什么在x86_64中使用@synthesize而不是在i386中工作.**
Jos*_*erg 35
@property 只是对编译器说,该类应该定义匹配该属性的方法.
@protocol MyProtocol
@property (nonatomic, readonly) id someObject;
@property (nonatomic, getter=isAlive) BOOL alive;
@end
Run Code Online (Sandbox Code Playgroud)
现在需要实现该协议的任何东西
- (id)someObject;
- (BOOL)isAlive;
- (void)setAlive:(BOOL)aBOOL;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20840 次 |
| 最近记录: |