2015-02-24 5 views

ответ

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; 
+1

Спасибо! Это также относится к 'непрерывному' методу/свойству. Однако многие другие декларации, которые вычеркнуты в документах 'NSControl' *, фактически устарели: я попытался немного расшифровать это в [этом ответе] (http://stackoverflow.com/a/32102638/2047122). – Ashley