ios - 关于@property自动生成私有成员变量问题
怪我咯
怪我咯 2017-04-18 09:29:16
0
2
294

我现在知道@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;
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆 (2)
伊谢尔伦

@property int _age这样定义属性默认是原子性(atomic)的,所以呢这时候set和get方法是不完整的,你需要进行使用@dynamic或者@synthesize来保证set和get同步,其实你只要换成@property (nonatomic)int age;即可.與有沒有'_'沒有關係參考SO,中文版新浪博客

    刘奇

    哎...Xcode也是會時不時抽風的,我懷疑是Xc的問題, 我關了Xc, 再打開幾個項目的時候, 錯誤信息居然在其他項目根本不相關的文件裡...?

    後來, 想起來用斷點調試就可以看到裡面的值了(新手,還沒習慣用調試工具..)
    果然像我想的一樣

    自動產生的私有屬性是int __age;

    把它生成的所有東西寫一下:

    int __age; - (void)set_age:(int)_age; - (int)_age; - (void)set_age:(int)_age { __age = _age; } - (int)_age { return __age; }

    應該沒有寫錯吧?

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!