2015-02-24 59 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