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

天蓬老师
天蓬老师

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

membalas semua(5)
大家讲道理

Selepas menggunakan ARC, kedua-dua @synthesize dan int _age; boleh ditinggalkan dan akan ditambah secara automatik. Kod menjadi elegan mulai sekarang!

伊谢尔伦

Tidak dibenarkan menulis seperti ini dalam versi iOS sebelumnya Jika saya ingat dengan betul, selepas iOS7, anda boleh meninggalkan kata kunci sintesis Selagi sifat ditetapkan, sistem akan menjana kaedah perolehan dan tetapan lalai .

Peter_Zhu

Disebabkan @property, kaedah penetap getter dijana secara automatik.

小葫芦

Bertentangan dengan jawapan @isteven, peranan ARC adalah untuk menyediakan pengurusan memori automatik, bukan untuk mengabaikan @sintesis. Sebab mengapa @synthesize boleh diabaikan ialah setiap kali pembolehubah global diisytiharkan pada masa lalu, ia perlu disegerakkan semula di dalamnya. Memandangkan langkah ini telah menjadi langkah berulang, pembangunan iOS kemudiannya meninggalkan langkah ini demi kemanusiaan, dan sebenarnya memuatkan bahagian ini secara automatik.

左手右手慢动作

Pengkompil mengendalikan ini secara automatik, tidak perlu menulis sythesize

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan