ViewWillLayoutSubviews

Это первый шаг в жизненном цикле, где границы завершены. Если вы не используете ограничения или автоматический макет, вы, вероятно, захотите обновить subviews здесь.

ViewDidLayoutSubviews

Это событие уведомляет viewcontroller о том, что настройки subviews были настроены. Это хорошее место для внесения любых изменений в subviews после их установки.

ViewDidAppear

Запускается после отображения представления на экране. Это делает его хорошим местом для получения данных

 


 

 

Объявление свойств (property), атрибуты retain, assign, nonatomic, readonly, copy.

Свойства

Начиная с Objective C 2.0 появилось понятие - свойство, под свойство выделена директива @property, которая указывает, что данная переменная класса имеет метод для чтения и записи в нее. Данная директива объявляется в файле объявлении класса.

Сопутствующая директиве @property, директива говорящая компилятору, что необходимо создать методы для доступа к переменной носит наименование @synthesize и объявляется в файле реализации класса.

Синтаксис объявления свойства: @property (атрибуты, через запятую) тип имя;

Атрибуты свойств

В случае необходимости можно переопределить методы установки или чтения переменной вместе называемые акцессорами (Accessor) и соответственно чтения - геттер (getter), записи - сеттер (setter):

Бывает не всегда нужно предоставлять полный доступ к переменной класса, в этом случае нужно ограничить его в объявлении @property:

· readwrite - и чтение и запись

· readonly - только чтение

Свойство только для чтения будет выглядеть так: @property (readonly) int a;

strong - обозначает строгое переназначение объекта, делая указатель на объект владельцем этого объекта

weak - в отличии от strong обозначает нестрогое соответствие и если объект был освобожден из памяти (из другого класса или потока), то значение установится в nil. Не поддерживается OS X v10.6 и iOS 4; используйте assign

copy - указывает на то, что для присваивания будет использована копия переданного объекта. Первоначальному объекту посылается сообщение release. Может быть использовано только для объектов, поддерживающих протокол NSCopying, например NSString.

assign - для задания нового значения используется оператор присваивания. Используется только для скалярных типов (NSInteger и CGRect) либо для объектов, которыми мы не владеем.

retain - укaзывает на тo, что для объекта, используемого в качестве нового значения instance-переменной, управление памятью происходит вручную (не забываем потом освободить память).

nonatomic - делает более быстрым способ доступа к объекту в немногозадачной среде, так-как в случае с atomic (по умолчанию все акцессоры atomic) и использованием strong, copy, или retain, во избежание коллизий с возможностью доступа к свойству из других потоков в сеттере строится код блокирующий переключение между потоками

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: