在大多數教程,聲明實例變量的辦法是把它放在.H在Objective C中有2種聲明實例變量的方法嗎?
@interface myViewController: UIViewController {
UITextField *myTextField;
}
@property (nonatomic, retain) IBOutlet UITextField *myTextField;
和.M
@implementation myViewController
@synthetize myTextField;
但在這個斯坦福大學課程http://itunes.apple.com/itunes-u/ipad-iphone-application-development/id480479762這樣做是這樣的而
在.H只做:
@interface myViewController: UIViewController
@property (nonatomic, retain) IBOutlet UITextField *myTextField;
In .m是這樣做的:
@synthetize myTextField = _myTextField;
它們是否等同?是iOS5特有的第二種方法嗎?
的[可能重複是否有任何理由,如果你申報的ivars」重新使用Objective-C中的屬性?](http://stackoverflow.com/questions/4903651/is-there-any-reason-to-declare-ivars-if-youre-using-properties-exclusively-in-o ) – 2012-03-02 20:47:52
在2.0版本的語言規範中添加了@ @ property和@ @ synthesize(和@ @ dynamic')關鍵字。如果你是蘋果開發者,他們的[Objective-C語言](https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html)參考是有用的知識 – bshirley 2012-03-02 21:01:10
@Josh我的問題不是關於我是否應該使用ivars:我想使用它們。我的問題是關於宣佈他們的兩種方式。或者,也許我不知道什麼是ivars,因爲我是新手,但我正在討論與其他編程語言相同的實例變量。 – user310291 2012-03-05 20:17:56