我现在知道@property int age;
编译器会自动生成属性, setter方法和getter方法的声明实现
int _age; - (void)setAge:(int)age; - (int)age; - (void)setAge:(int)age { _age = age; } - (int)age { return _age; }
但我用@property int _age;
生成的属性是什么? 不是__age 不是_age 也不是age
声明倒是没问题
- (void)set_age:(int)_age; - (int)_age;
@property int _age
这样定义属性默认是原子性(atomic)的,所以呢这时候set和get方法是不完整的,你需要进行使用@dynamic
或者@synthesize
来保证set和get同步,其实你只要换成@property (nonatomic)int age;
即可.與有沒有'_'沒有關係參考SO,中文版新浪博客哎...Xcode也是會時不時抽風的,我懷疑是Xc的問題, 我關了Xc, 再打開幾個項目的時候, 錯誤信息居然在其他項目根本不相關的文件裡...?
後來, 想起來用斷點調試就可以看到裡面的值了(新手,還沒習慣用調試工具..)
果然像我想的一樣
自動產生的私有屬性是
int __age;
把它生成的所有東西寫一下:
應該沒有寫錯吧?