#import <Foundation/Foundation.h>
/**
默认的范围是protected
**/
@interface Animal :NSObject
{
int _age;
NSString * name;
}
@property int age;
@end
@implementation Animal{
}
@end
int main(int argc, const char * argv[]) {
Animal* animal=[Animal new];
animal.age=10;
[animal setAge:5];
NSLog(@"age is %d",animal.age);
return 0;
}
不是说synthesize关键字是在实现中自动生成set和get方法吗?但是我这里是没有使用
synthesize关键字,怎么还是能调用呢?
伊谢尔伦2017-04-24 09:16:05
これは以前の iOS バージョンでは許可されていませんでした。私の記憶が正しければ、iOS 7 以降は synthesize キーワードを省略できます。プロパティが設定されている限り、システムはデフォルトの get メソッドと set メソッドを自動的に生成します。
高洛峰2017-04-24 09:16:05
@istevenの答えとは対照的に、ARCの役割は自動メモリ管理を提供することであり、@synthesizeを無視することではありません。 @synthesize を無視できる理由は、過去にグローバル変数が宣言されるたびに、その中で再同期する必要があるためです。このステップは繰り返しのステップとなったため、その後の iOS 開発では人間化の目的でこのステップを省略し、実際にはこの部分が自動的にロードされました。