2

有谁知道为什么 NSControl 的 isEnabled 在 setEnabled: 仍在工作时已被删除?

4

1 回答 1

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;
于 2015-02-24T22:10:28.167 回答