Categories:
Механизм, позволяющий добавить реализацию к существующему классу, не наследуясь от него. Например, можно добавить метод к базовому классу иерархии и, таким образом, получить новую функциональность всех библиотечных класов [не выглядит ОО ;-)]
Protocols:
По сути, это интерфейс. Бывают двух видов формальные и неформальные. Неформальные - это категории (см. пункт 1), а формальные - честные.
Соответственно, ключеые слова
@optionalпозволяют помечать методы интерфейса, как обязательные или не обезательные к реализации в классах наследниках.
@required
NB:
Что-то типа generics:
- (void)draggingEnded:(id)sender;
// Аргумент может быть любого типа, должен реализовывать NSDraggingInfo протокол
No comments:
Post a Comment