【发布时间】:2015-02-24 21:24:32
【问题描述】:
有人知道为什么 NSControl 的 isEnabled 在 setEnabled: 仍在工作时被删除了吗?
【问题讨论】:
有人知道为什么 NSControl 的 isEnabled 在 setEnabled: 仍在工作时被删除了吗?
【问题讨论】:
在 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;
【讨论】:
continuous 方法/属性。然而,NSControl 文档中删除的许多其他声明 实际上已被弃用:我尝试在 this answer 中对此进行一些解码。