Кто-нибудь знает, почему NSControl isEnabled был удален, когда setEnabled: все еще работает?NSControl isEnabled доступен только в OS X v10.0 через OS X v10.9
2
A
ответ
2
В OS X 10.10 (и iOS 8) многие пары методов приемника/сеттера в каркасах Apple были заменены объявлениями @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;
Спасибо! Это также относится к 'непрерывному' методу/свойству. Однако многие другие декларации, которые вычеркнуты в документах 'NSControl' *, фактически устарели: я попытался немного расшифровать это в [этом ответе] (http://stackoverflow.com/a/32102638/2047122). – Ashley