Rumah > Soal Jawab > teks badan
#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
Selepas menggunakan ARC, kedua-dua @synthesize
dan int _age;
boleh ditinggalkan dan akan ditambah secara automatik. Kod menjadi elegan mulai sekarang!
伊谢尔伦2017-04-24 09:16:05
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 .
高洛峰2017-04-24 09:16:05
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.
ringa_lee2017-04-24 09:16:05
Pengkompil mengendalikan ini secara automatik, tidak perlu menulis sythesize