2015-02-24 60 views

回答

2

在OS X 10.10(和iOS 8)中,Apple框架中的許多getter/setter方法對被替換爲@property聲明。這使得頭部接口更加清晰,並將這些API導入Swift更多...嗯,Swifty。

// Before 
- (BOOL)isEnabled; 
- (void)setEnabled:(BOOL)enabled; 

// After 
@property(getter=isEnabled) BOOL enabled 

文檔尚未完全更新,以反映這一點,所以它錯誤地顯示isEnabled爲過時,即使@property聲明意味着你仍然可以做以下任一操作:

BOOL foo = [control isEnabled]; 
[control setEnabled:YES]; 
BOOL bar = control.enabled; 
control.enabled = YES; 
+1

謝謝!這也適用於「連續」方法/屬性。然而,在'NSControl'文檔*中劃掉的許多其他聲明實際上已被棄用:我試圖在[這個答案]中解碼這一點(http://stackoverflow.com/a/32102638/2047122 )。 – Ashley 2015-08-19 18:12:37