iOS, как реализовать @property протокола

Я понимаю, что протокол определяет имена методов, а кто-то, кто соответствует этому протоколу, выполняет реализацию этих методов.

Итак, как насчет свойств, объявленных в протоколе? Это значит, что реализовать свойство означает реализовать его сеттер и getter?

Свойство – это причудливое имя для одного или двух методов со специфическими сигнатурами, для которых Objective-C предоставляет соглашение, которое позволяет вызывать их с использованием альтернативной точки . синтаксис. Нет никакой разницы между протоколом, объявляющим, скажем, пару

 -(int) foo; -(void)setFoo:(int)_foo; 

методы и протокол, объявляющий свойство read-write:

  @property (readwrite) foo; 

Таким образом, вы абсолютно правы, реализация свойства означает реализацию одного или двух методов в зависимости от того, реализуете ли вы свойство «только для чтения», «только для записи» или «чтение-запись».

Как говорили другие, вам просто нужно реализовать геттер и / или сеттер (в зависимости от свойства).

Я бы добавил, что вы можете просто синтезировать их:

@property (неатомный, сохраняющий) NSObject * foo;

закончится тем, что:

@synthesize foo;

Протокол – это просто то, что гарантирует, что объект реализует набор методов. Если бы вы использовали объект в качестве делегата своего класса, например, вы бы хотели убедиться, что он реализовал методы, которые вы собираетесь вызывать. Это точка протокола.

Interesting Posts
Давайте будем гением компьютера.