这更像是一个抱怨而不是一个问题,尽管也许有人对它有一些好处.所以基本上如果你想在你的Objective-C类中使用ivar有访问器方法,你必须提到它3次
SomeClass* _ivar;
@property (nonatomic,retain/assign/copy) SomeClass* ivar;
@synthesize ivar = _ivar;
Run Code Online (Sandbox Code Playgroud)
也许第四次采用dealloc方法.因此,如果这种方法就像Java风格的注释 - 在实际的ivar声明之前的某个地方,就像这样:
@property (nonatomic,retain,synthesize = ivar,dealloc) SomeClass* _ivar;
Run Code Online (Sandbox Code Playgroud)
这也生成了访问器方法,并且dealloc - 告诉在dealloc方法中释放ivar.
实际上你不必申报ivar - 如果你只是为它们申报财产,它们就可以合成.这应该为你合成名称iVar :(虽然在传统运行时不支持 - 所以这个看似冗余的语法的原因之一是为了与传统平台向后兼容)
@interface MyClass : NSObject
{
}
@property(copy) NSString *name;
@end
...
@synthesize name;
Run Code Online (Sandbox Code Playgroud)
在新的XCode版本(可能是4.0)中,您也不需要使用@synthesize - 默认情况下将合成属性.
所以当你看到objective-c开发满足你的愿望:)
归档时间: |
|
查看次数: |
207 次 |
最近记录: |