Мини вопросы и ответы по OBJECTIVE-C
- От чего пошел язык Objective-c?
OBJECTIVE-C это надмножество языка С основанное на модели обьектно ориентированного языка Smalltalk.
- В чем разница между NSString и просто String? (Что значит приставка NS в общем?)
Приставка NS это абревиатура от NextStep операционной системы на основе которой и создана часть MAC OS. Apple в свое время купил и использует до сих пор.
- MVC — Model — View -Controller
Шаблон проектирования ПО в котором программа делится на три элемента: модель данных (model), пользовательский интерфейс (view) и управляющую логику (controller).
- RunLoop и жизненный цикл UIViewController
RunLoop или жизненный цикл программы и идеология сопровождения процессов от запуска до их окончания или мультипоточности — это я вам скажу вещь такая… в инете почти ничего нет кроме хелпа от Эппл. Да и фиг с ним.
Из полезного что нашел это возможные состояния программы
- Not running (не запущенное) — приложение не было запущено или его работа была прекращена
- Inactive (неактивное) — приложение работает, но не принимает события (например, когда пользователь заблокировал телефон при запущенном приложении)
- Active (активное) — нормальное состояние приложения при его работе
- Background (фоновое) — приложение больше не на дисплее, но оно все еще выполняет код
- Suspended (приостановленное) — приложение занимает память, но не выполняет код
Нашел тут
И еще картинка полезная
Жизненный цикл UIViewController замечательно расписан тут .
- Опишите иерархию классов от UIButton до NSObject
UIButton наследуется от UIControl, UIControl наследуется от UIView, UIView наследуется от UIResponder, UIResponder наследуется от корневого класса NSObject
- UITableViewController как с ним работать какие методы в нем есть,
Все полезное можно найти тут. А вообще это представление табличной формы, оно наследуется от uiView и умеет рабоать с таблицами.
- чем отличаются Bounds и Frame,
frame – это прямоугольник описываемый положением location(x, y) и размерами size (width, height) вьюхи относительно ее superview в которой оа содержится. bounds – это прямоугольник описываемый положением location(x, y) и размерами size (width, height) вьюхи относительно ее собственной систмы координат (0, 0).
- чем объект Objective-c отличается от структуры С, что такое структура в С.
Структура – специальный тип данных языка C, который содержит в себе другие типы данных в одном блоке и группрует их под одним именем. Объекты в Obj-c представляют собой структуры в которых имеется ссылка на объект класса.
- рассказать об атрибутах @property в частности про nonatomic
@property это переменная класса., еслипеременная объявлена через @property, то во-первых генерируется сеттер и геттер для данной переменной (если есть synthesize ), и во-вторых переменная будет доступна из других классов через «.»
У @property есть атрибуты, их три, например — nonatomic,readwrite,strong. Первый nonatomic или atomic используется в мультипоточном программировании. Не рекомендуется использовать atomic если не знаете что это такое.
readwrite, readonly — первый позволяет образаться к свойству и через сеттер и через геттер, а вот второй создает только геттер
третий тип это описание работы с памятью, сильная или слабая ссылка будет (strong — weak)
- NSCoding, archiving
Протокол NSCoding позволяет реализовать архивирование или разархивирование данных. Например у нас есть обьект мы его можем сохранить, а при следующей загрузке приложения подгрузить обратно
- что такое View (представление) и что такое window?
View или представление это то что отображается на экране устройства в программе. Window это некий контейнер в котором отображаются вью.
- Что такое контекст (context)?
Контекст это область рисования для CoreGraphics
- Что такое notifications (уведомления)? как мы должны их использовать?
Уведомления это реализациия паттерна Наблюдатель, в приложении мы можем сказать NSNotificationCenter отслеживать то или иное событие и отправлять уведомления о них нашим обьектам. Например что изменилось положение смартфона или его потрясли и т.п. А уже наш обьект будет обрабатывать эти уведомления и производить определенные действия.
- Что такое memory warning (предупреждение о малом количестве памяти), как мы должны их обрабатывать?
Если на устройстве заканчивается память в центр уведомлений приходит сообщение UIApplicationDidReceiveMemoryWarningNotification, наш обьект может об этом узнать через уведомления и что-либо сделать, например почистить кеш или сохранить данные
- Что такое делегат? как его создать и использовать?
Делегирование очень широко используемый паттерн разработки в objective-c, его суть в том, что объект, который делегирует, отдает ответсвенность за выполнение какого-то задания делегату (объекту-помошнику). Ранее я уже писал про пример с навигацией. Обьект отвечающий за навигацию отдает своему делегату право решать сто делать с данными которые он ему будет исправно отправлять. вообще делегирование в Objective-C встречается на каждом шагу
- методы доступа, геттер и сеттер
акцессоры, методы доступа, геттеры и сеттеры — как не называй это методы(куски кода) позволяющие получать доступ к переменным класса из другого обьекта.
- Виды нотации
В objective используется две нотации, классическая точечная когда методы и переменные вызываются у обьекта через точку (например obj.var=1). Другая нотация скобочная, как я ее называю, подразумевает как раз более ООП вид. все что в квадратных скобках это обьект и посылаемое ему сообщение,к примеру выше, это относится так [obj setVar:1]
Один комментарий
Спасибо большое освежил и расширил )