Читайте также: |
|
- Swift есть отличный способ, чтобы следить за изменениями в состоянии наших объектов, добавляя что-то называется наблюдателей собственности. Это очень простой способ, чтобы автоматически запустить код каждый раз при изменении значения свойства. Так что, это простое определение класса, я собираюсь добавить наблюдателей на этой хранимой собственности называется именем. Это что-нибудь о том, как мы обычно используют это свойство не изменится. С именем сначала, что я собираюсь сделать, это добавить блок кода в конце просто открытие и закрытие фигурную скобку. Внутри, что я могу добавить еще два кодовых блоков с именами willSet и после этого didSet.
Это наши наблюдатели собственности, в настоящее время они автоматически вызывается при любом изменении этого свойства. WillSet называется как раз перед его вот-вот изменится, и didSet называется сразу после. Вы можете использовать один или другой или оба или конечно, тоже. Я собираюсь добавить строку в willSet здесь, только Printline около изменить имя. Что происходит, является мы получаем прошел в неявный параметр, который называется новое_значение. Так willSet знает, что это вот-вот изменится.
Оборотной стороной этого является didSet, который вызывается после этого, получает принят в неявный параметр, который называется OldValue. Если это свойство определяется как строка, новое_значение и OldValue будет строка. Если это свойство определено как INT, они будут целое, и так далее. И это все, что наблюдатели собственности. Теперь то, что я хочу видеть, чтобы увидеть эффект этого нужно внести изменения в этот объект. Здесь, внизу, я экземпляра нового экземпляра класса игрока, а затем, что я буду делать, я буду идти вперед и сказать newPlayer.name равно Шелли Эванс.
Мы видим, на детской площадке просто состояние этого объекта, но мы не видим вот изменить имя или сменили название из сообщений. Что мне нужно сделать, это просто откройте кнопку История значение, поэтому я могу увидеть выход консоли. Но если я вижу, что у нас есть два сообщения. О том, чтобы изменить имя Шелли Эванс и сменили название от Джона Доу. Это новое значение и старое значение, что мы видим. Обратите внимание, что они не призывали к инициализации собственности, они не называют, когда мы сначала изменить его на John Doe, как она была определена в самом классе.
Это потому, что мы всегда можем предположить, свойство присваивается начальное значение. Наблюдатели вступают в силу после инициализации. Они называются только тогда, когда свойство меняется. Вы можете, если вы хотите изменить имя неявного параметра этих блоков, если вам не нравится новое_значение или OldValue, скажем, если я хотел, чтобы это можно назвать новое имя, все, что я могу сделать, это после willSet слова, я могу просто поставить NEWNAME в скобках, что будет изменить имя неявного параметра, и вот что я должен был бы использовать внутри этой willSet блока.
Сказав, что, я думаю, новое_значение и OldValue являются довольно хорошо подходит для этой информации для этих данных.Единственное, что бы отметить, что вы не можете добавить наблюдателей собственности на ленивых свойств, как этот, только два обычных хранимых свойств. И что это для наблюдателей собственности.
Дата добавления: 2015-08-20; просмотров: 160 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Adding property observers | | | Understanding access modifiers in Swift |