objective-c - OC中间没有使用synthesize关键字,为什么还能访问呢?
天蓬老师
天蓬老师 2017-04-24 09:14:05
0
5
408
#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关键字,怎么还是能调用呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(5)
大家讲道理

ARC を使用した後、@synthesizeint _age;すべてを保存すると、自動的に追加されます。これからコーデもエレガントに!

いいねを押す +0
伊谢尔伦

これは以前の iOS バージョンでは許可されていませんでした。私の記憶が正しければ、iOS 7 以降は synthesize キーワードを省略できます。プロパティが設定されている限り、システムはデフォルトの get メソッドと set メソッドを自動的に生成します。

いいねを押す +0
Peter_Zhu

@propertyによりgetter setterメソッドが自動生成されます。

いいねを押す +0
小葫芦

@istevenの答えとは対照的に、ARCの役割は自動メモリ管理を提供することであり、@synthesizeを無視することではありません。 @synthesize を無視できる理由は、過去にグローバル変数が宣言されるたびに、その中で再同期する必要があるためです。このステップは繰り返しのステップとなったため、その後の iOS 開発では人間化の目的でこのステップを省略し、実際にはこの部分が自動的にロードされました。

いいねを押す +0
左手右手慢动作

コンパイラーが自動的に処理するため、sythesize を記述する必要はありません

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート