Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save svd-zp/a60f443cae216b1011352d2e6371a6e7 to your computer and use it in GitHub Desktop.

Select an option

Save svd-zp/a60f443cae216b1011352d2e6371a6e7 to your computer and use it in GitHub Desktop.

Revisions

  1. @arturlector arturlector revised this gist Feb 17, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,7 @@ General:
    --------
    - Что такое `полиморфизм`?

    - ```Что такое *инкапсуляция*? Что такое *нарушение инкапсуляции*?```
    - ```Что такое *инкапсуляция? Что такое *нарушение инкапсуляции?```

    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
  2. @arturlector arturlector revised this gist Feb 17, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,7 @@ General:
    --------
    - Что такое `полиморфизм`?

    - ```Что такое **инкапсуляция**? Что такое ***нарушение инкапсуляции***?```
    - ```Что такое *инкапсуляция*? Что такое *нарушение инкапсуляции*?```

    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
  3. @arturlector arturlector revised this gist Feb 17, 2015. No changes.
  4. @arturlector arturlector revised this gist Feb 17, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,7 @@ General:
    --------
    - Что такое `полиморфизм`?

    - ```Что такое инкапсуляция? Что такое нарушение инкапсуляции?```
    - ```Что такое **инкапсуляция**? Что такое ***нарушение инкапсуляции***?```

    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
  5. @arturlector arturlector revised this gist Feb 17, 2015. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,9 @@
    General:
    --------
    - Что такое `полиморфизм`?

    - ```Что такое инкапсуляция? Что такое нарушение инкапсуляции?```

    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона (Singleton)` в `ARC` и в `non-ARC`?
  6. @arturlector arturlector revised this gist Feb 17, 2015. No changes.
  7. @arturlector arturlector revised this gist Feb 17, 2015. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -3,6 +3,7 @@
    General:
    --------
    - Что такое `полиморфизм`?
    - ```Что такое инкапсуляция? Что такое нарушение инкапсуляции?```
    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона (Singleton)` в `ARC` и в `non-ARC`?
  8. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -74,7 +74,7 @@ Memory Management:
    - Для чего используется класс `NSCoder`?
    - Опишите правильный способ управленя памятью выделяемой под `Outlet'ы`?
    - Реализуйте следующие методы: `retain, release, autorelease`?
    -

    Networking:
    ----------
    - Преимущества и недостатки `синхронного и асинхронного` соединения?
  9. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -279,6 +279,6 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    ```objc
    Ball *ball = [[[[Ball alloc] init] autorelease] autorelease];
    ```
    Общие дополнительные вопросы:
    Additional:
    -----------------------------
    - Анкета в которой просят оценить свои знания по технологиям по 10 бальной шкале.
  10. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -282,4 +282,3 @@ Ball *ball = [[[[Ball alloc] init] autorelease] autorelease];
    Общие дополнительные вопросы:
    -----------------------------
    - Анкета в которой просят оценить свои знания по технологиям по 10 бальной шкале.
    -
  11. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 11 additions and 6 deletions.
    17 changes: 11 additions & 6 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -17,6 +17,9 @@ Objective-C, Foundation:
    ------------------------
    - Опишите `основные понятия ОО программирования` в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Что такое назначеный `инициализатор (designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду `if (self = [super ...])`)?
    - Суть `рантайма (Runtime), отправление сообщения`;
    - Объявление `свойств (property)` `(retain, assign, nonatomic, readonly, copy)`. С подвохом: вопрос о несуществующем параметре `atomic`, что он означает? Как правильно реализовать сетер для свойства с параметром retain? Вопрос о циклах в графах владения, и почему свойства delegate (предоставляющие доступ к делегату) обычно задаются как `assign`?
    - В чем разница между `точечной нотацией` и использованием квадратных скобок? Что происходит когода мы пытаемся вызвать метод у nil указателя? Разница между nil и Nil?
    - Что такое `селектор (selector)`? Как его вызвать? как отложить вызов селектора? Что делать если селектор имеет много параметров? `(NSInvocation)` Как запустить селектор во второстепенном `(фоновом) потоке`?
    - Как запустить `поток`? Что первым нужно сделать при запуске `потока`? `(NSAutoreleasePool)` Что такое `runLoop`, кодга он используется? `(timers, nsurlconnection ...)`
    - Что такое `делегат (delegate)`? как его создать и использовать?
    @@ -25,18 +28,19 @@ Objective-C, Foundation:
    - Какие существуют `root классы` в iOS? Для чего нужны `root классы`? Корневые классы: NSObject, NSProxy? Как работает proxy? Как эмитировать множественное наследование?
    - `Тип id`. Что случится во время компиляции если мы посылаем сообщение объекту `типа id`? Что случится во время выполнения если этот метод существует? Что произойдет здесь (компиляция + время выполнения): `NSString *s = [NSNumber numberWithInt:3]; int i = [s intValue];`
    - Что такое `указатель isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали? Цепочка ответсвенности, что происходит с методом после того как он не нашелся в объекте класса, которому его вызвали (в сторону forwardInvocation:)?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория vs extension`?
    - Можно ли добавить `ivar` в категорию?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs наследование`?
    - Что такое `notifications (уведомления)`? как мы должны их использовать?
    - Какая разница м/у использование `делегатов (delegation)` и `нотификейшенов (notification)`?
    - В чем разница между `NSArray и NSMutableArray`?
    - Чем отличается `NSSet от NSArray`? Какие `операции` происходят быстро в `NSSet` и какие в `NSArray`?
    - `Формальный и неформальный (informal)` протокол?
    - `Формальный и неформальный (informal)` протокол? Протоколы (protocols): основные отличия между c#/java интерфейсами и Objective-C протоколами. Что делать в случае если класс не реализует какой-то метод из протокола?
    - Есть ли `приватные и защищенные` методы в Objective-C?
    - Что такое `быстрое перечисление (fast enumeration)`?
    - Как имитировать `множественное наследование`?
    - Что такое `KVO`? Когда его нужно использовать? Методы для обозревания объектов? Работает ли KVO с instance переменными (полями) объекта?
    - Что такое `KVO`? Когда его нужно использовать? Методы для обозревания объектов? Работает ли `KVO с instance переменными (полями)` объекта?
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - Как удалить объект в ходе итерации по циклу?
    @@ -63,7 +67,7 @@ Memory Management:
    - Как происходит обработка `memory warning`(предупреждение о малом количестве памяти)? Зависит ли обработка от версии iOS, как мы должны их обрабатывать?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    - Когда нужно использовать метод `retainCount` (никогда, почему?) Объясните что такое `подсчет ссылок (retain count`)?
    - Основные тему управления памятью, такие как владение `retain/release/autorelease`.
    - Темы управления памятью, такие как владение `retain/release/autorelease`.
    - Что случится если вы добавите только что созданный объект в `Mutable Array`, и пошлете ему сообщение `release`? Что случится если послать сообщение `release` массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
    - С подвохом: `сборщик мусора` для iPhone.
    - Нужно ли `ретейнить` (посылать сообщение retain) `делегаты`?
    @@ -86,15 +90,15 @@ Multithreading:
    - Что такое `мьютекс (mutex)`?
    - `Асинхронность` vs `многопоточность`. Чем отличаются?
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Как запустить поток? Что первым нужно сделать при запуске потока? (NSAutoreleasePool) Что такое runLoop, кодга он используется? (timers, nsurlconnection …)
    - Как запустить поток? Что первым нужно сделать при запуске потока? (NSAutoreleasePool - пул автоосвобождения) Что такое runLoop, кодга он используется? (timers, nsurlconnection …)
    - Чем отличается `dispatch_async от dispatch_sync`?
    - Для чего при разработке под iOS использовать `POSIX-потоки`? `pthread_create(&thread, NULL, startTimer, (void *)t);`
    - А чем реально `POSIX-потоки` лучше чем `GCD или NSOperationQueue вместе с NSOperation`? Приходилось ри реально использовать POSIX и как в этом были прюсы? Реально, просто интересно…
    `Use POSIX calls if cross-platform portability is required. If you are writing networking code that runs exclusively in OS X and iOS, you should generally avoid POSIX networking calls, because they are harder to work with than higher-level APIs. However, if you are writing networking code that must be shared with other platforms, you can use the POSIX networking APIs so that you can use the same code everywhere. `

    UIKit:
    ------
    - Разница между свойствами `bounds и frame` объекта UIView
    - Разница между свойствами `bounds и frame` объекта UIView? Понимание системы координат?
    - Какие бывают `состояния` у приложения?
    - Цикл жизни `UIViewController`?
    - Что такое `View` (представление) и что такое `window`?
    @@ -143,6 +147,7 @@ Algorithms:
    - Поменять местами a и b не используя промежуточную переменную?
    - Написать функцию вычисления n-го числа последовательности фебоначи. (если решить через рекурсию, спросят чем опасно такое решение)?
    - Решить задачку о массиве: дан массив из 1001 элемента в котором присутсвуют все числа от 1 до 1000 и одно повторяется дважды, узнать какое, если к каждому элементу можно обратиться только 1 раз?
    - Как из строки вытащить подстроку?

    Logical:
    --------
  12. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -17,9 +17,9 @@ Objective-C, Foundation:
    ------------------------
    - Опишите `основные понятия ОО программирования` в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Что такое назначеный `инициализатор (designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду `if (self = [super ...])`)?
    - Что такое `селектор (selector)`? Как его вызвать? как отложить вызов селектора? Что делать если селектор имеет много параметров? (NSInvocation) Как запустить селектор во второстепенном (фоновом) потоке?
    - Как запустить поток? Что первым нужно сделать при запуске потока? (NSAutoreleasePool) Что такое runLoop, кодга он используется? (timers, nsurlconnection ...)
    - Что такое делегат? как его создать и использовать?
    - Что такое `селектор (selector)`? Как его вызвать? как отложить вызов селектора? Что делать если селектор имеет много параметров? `(NSInvocation)` Как запустить селектор во второстепенном `(фоновом) потоке`?
    - Как запустить `поток`? Что первым нужно сделать при запуске `потока`? `(NSAutoreleasePool)` Что такое `runLoop`, кодга он используется? `(timers, nsurlconnection ...)`
    - Что такое `делегат (delegate)`? как его создать и использовать?
    - Как представлены `структуры C` (CGRect, CGSize, CGPoint) в Objective-C?
    - Чем объект Objective-c отличается от структуры С, что такое структура в С.
    - Какие существуют `root классы` в iOS? Для чего нужны `root классы`? Корневые классы: NSObject, NSProxy? Как работает proxy? Как эмитировать множественное наследование?
  13. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 10 additions and 3 deletions.
    13 changes: 10 additions & 3 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -17,21 +17,26 @@ Objective-C, Foundation:
    ------------------------
    - Опишите `основные понятия ОО программирования` в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Что такое назначеный `инициализатор (designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду `if (self = [super ...])`)?
    - Что такое `селектор (selector)`? Как его вызвать? как отложить вызов селектора? Что делать если селектор имеет много параметров? (NSInvocation) Как запустить селектор во второстепенном (фоновом) потоке?
    - Как запустить поток? Что первым нужно сделать при запуске потока? (NSAutoreleasePool) Что такое runLoop, кодга он используется? (timers, nsurlconnection ...)
    - Что такое делегат? как его создать и использовать?
    - Как представлены `структуры C` (CGRect, CGSize, CGPoint) в Objective-C?
    - Чем объект Objective-c отличается от структуры С, что такое структура в С.
    - Какие существуют `root классы` в iOS? Для чего нужны `root классы`?
    - Какие существуют `root классы` в iOS? Для чего нужны `root классы`? Корневые классы: NSObject, NSProxy? Как работает proxy? Как эмитировать множественное наследование?
    - `Тип id`. Что случится во время компиляции если мы посылаем сообщение объекту `типа id`? Что случится во время выполнения если этот метод существует? Что произойдет здесь (компиляция + время выполнения): `NSString *s = [NSNumber numberWithInt:3]; int i = [s intValue];`
    - Что такое `указатель isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория vs extension`?
    - Можно ли добавить `ivar` в категорию?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs наследование`?
    - Что такое `notifications (уведомления)`? как мы должны их использовать?
    - Какая разница м/у использование `делегатов (delegation)` и `нотификейшенов (notification)`?
    - В чем разница между `NSArray и NSMutableArray`?
    - Чем отличается `NSSet от NSArray`? Какие `операции` происходят быстро в `NSSet` и какие в `NSArray`?
    - `Формальный и неформальный (informal)` протокол?
    - Есть ли `приватные и защищенные` методы в Objective-C?
    - Как имитировать `множественное наследование`?
    - Что такое `KVO`? Когда его нужно использовать?
    - Что такое `KVO`? Когда его нужно использовать? Методы для обозревания объектов? Работает ли KVO с instance переменными (полями) объекта?
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - Как удалить объект в ходе итерации по циклу?
    @@ -55,7 +60,7 @@ Memory Management:
    - Что такое `autorelease pool`?
    - Как можно заимплементировать `autorelease pool на с++`?
    - Если я вызову `performSelector:withObject:afterDelay:` - объекту пошлется сообщение retain?
    - Как происходит обработка `memory warning`? Зависит ли обработка от версии iOS?
    - Как происходит обработка `memory warning`(предупреждение о малом количестве памяти)? Зависит ли обработка от версии iOS, как мы должны их обрабатывать?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    - Когда нужно использовать метод `retainCount` (никогда, почему?) Объясните что такое `подсчет ссылок (retain count`)?
    - Основные тему управления памятью, такие как владение `retain/release/autorelease`.
    @@ -71,6 +76,7 @@ Networking:
    - Преимущества и недостатки `синхронного и асинхронного` соединения?
    - Что означает `http, tcp`?
    - Какие различия между `HEAD, GET, POST, PUT`?
    - Как загрузить что-то из интернета? В чем разница между `синхронными и асинхронными запросами`? Небольшое задание. Опишите как загрузить изображение из интернета и отобразить его в ImageView — все это должно происходить после нажатия кнопки.

    Multithreading:
    ---------------
    @@ -80,6 +86,7 @@ Multithreading:
    - Что такое `мьютекс (mutex)`?
    - `Асинхронность` vs `многопоточность`. Чем отличаются?
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Как запустить поток? Что первым нужно сделать при запуске потока? (NSAutoreleasePool) Что такое runLoop, кодга он используется? (timers, nsurlconnection …)
    - Чем отличается `dispatch_async от dispatch_sync`?
    - Для чего при разработке под iOS использовать `POSIX-потоки`? `pthread_create(&thread, NULL, startTimer, (void *)t);`
    - А чем реально `POSIX-потоки` лучше чем `GCD или NSOperationQueue вместе с NSOperation`? Приходилось ри реально использовать POSIX и как в этом были прюсы? Реально, просто интересно…
  14. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 12 additions and 2 deletions.
    14 changes: 12 additions & 2 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -58,10 +58,14 @@ Memory Management:
    - Как происходит обработка `memory warning`? Зависит ли обработка от версии iOS?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    - Когда нужно использовать метод `retainCount` (никогда, почему?) Объясните что такое `подсчет ссылок (retain count`)?
    - Основные тему управления памятью, такие как владение `retain/release/autorelease`. Что случится если вы добавите только что созданный объект в Mutable Array, и пошлете ему сообщение release? Что случится если послать сообщение release массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
    - Основные тему управления памятью, такие как владение `retain/release/autorelease`.
    - Что случится если вы добавите только что созданный объект в `Mutable Array`, и пошлете ему сообщение `release`? Что случится если послать сообщение `release` массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
    - С подвохом: `сборщик мусора` для iPhone.
    - Нужно ли `ретейнить` (посылать сообщение retain) `делегаты`?

    - Для чего используется класс `NSCoder`?
    - Опишите правильный способ управленя памятью выделяемой под `Outlet'ы`?
    - Реализуйте следующие методы: `retain, release, autorelease`?
    -
    Networking:
    ----------
    - Преимущества и недостатки `синхронного и асинхронного` соединения?
    @@ -124,6 +128,7 @@ CoreAnimation, CoreGraphics:
    - Тайминги в `CoreAnimation`?
    - Что такое `backing store`?
    - Чем отличаются `аффинные преобразования от трехмерных`?
    - Нужно ли `ретейнить (посылать сообщение retain)` делегат для `CAAnimation`?

    Algorithms:
    -----------
    @@ -257,6 +262,11 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    NSLog(@"D %d", [object retainCount]);
    ```
    - Что произойдет при исполнении следующего кода?
    ```objc
    Ball *ball = [[[[Ball alloc] init] autorelease] autorelease];
    ```
    Общие дополнительные вопросы:
    -----------------------------
    - Анкета в которой просят оценить свои знания по технологиям по 10 бальной шкале.
  15. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 4 additions and 2 deletions.
    6 changes: 4 additions & 2 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,7 @@ Objective-C, Foundation:
    ------------------------
    - Опишите `основные понятия ОО программирования` в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Что такое назначеный `инициализатор (designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду `if (self = [super ...])`)?
    - Как представлены структуры C (CGRect, CGSize, CGPoint) в Objective-C?
    - Как представлены `структуры C` (CGRect, CGSize, CGPoint) в Objective-C?
    - Чем объект Objective-c отличается от структуры С, что такое структура в С.
    - Какие существуют `root классы` в iOS? Для чего нужны `root классы`?
    - Что такое `указатель isa`? Для чего он нужен?
    @@ -26,6 +26,7 @@ Objective-C, Foundation:
    - Можно ли добавить `ivar` в категорию?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs наследование`?
    - Какая разница м/у использование `делегатов (delegation)` и `нотификейшенов (notification)`?
    - В чем разница между `NSArray и NSMutableArray`?
    - Чем отличается `NSSet от NSArray`? Какие `операции` происходят быстро в `NSSet` и какие в `NSArray`?
    - `Формальный и неформальный (informal)` протокол?
    - Есть ли `приватные и защищенные` методы в Objective-C?
    @@ -56,9 +57,10 @@ Memory Management:
    - Если я вызову `performSelector:withObject:afterDelay:` - объекту пошлется сообщение retain?
    - Как происходит обработка `memory warning`? Зависит ли обработка от версии iOS?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    - Когда нужно использовать метод `retainCount` (никогда, почему?)
    - Когда нужно использовать метод `retainCount` (никогда, почему?) Объясните что такое `подсчет ссылок (retain count`)?
    - Основные тему управления памятью, такие как владение `retain/release/autorelease`. Что случится если вы добавите только что созданный объект в Mutable Array, и пошлете ему сообщение release? Что случится если послать сообщение release массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
    - С подвохом: `сборщик мусора` для iPhone.
    - Нужно ли `ретейнить` (посылать сообщение retain) `делегаты`?

    Networking:
    ----------
  16. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 28 additions and 9 deletions.
    37 changes: 28 additions & 9 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -2,21 +2,24 @@
    =======
    General:
    --------
    - Что такое `полиморфизм`?
    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона (Singleton)` в `ARC` и в `non-ARC`?
    - Какие еще `паттерны` знаете?
    - Паттерны `порождающие, создания объектов (Creational): Singleton, Abstarct Factory`?
    - Паттерны `структурные` (Structural): `MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite`?
    - Патерны `поведения и взаимодействия объектов` (Behavioral): `Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)`?
    - Паттерны `структурные (Structural): MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite`?
    - Патерны `поведения и взаимодействия объектов (Behavioral): Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)`?
    - Что такое `responder chain`?
    - Как работают `push нотификации`?

    Objective-C, Foundation:
    ------------------------
    - Опишите основные понятия ОО программирования в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Опишите `основные понятия ОО программирования` в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Что такое назначеный `инициализатор (designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду `if (self = [super ...])`)?
    - Какие существуют `root` классы в iOS? Для чего нужны `root` классы?
    - Как представлены структуры C (CGRect, CGSize, CGPoint) в Objective-C?
    - Чем объект Objective-c отличается от структуры С, что такое структура в С.
    - Какие существуют `root классы` в iOS? Для чего нужны `root классы`?
    - Что такое `указатель isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория vs extension`?
    @@ -50,7 +53,7 @@ Memory Management:
    - Зачем все свойства ссылающиеся на делегаты `strong/retain`. :)))
    - Что такое `autorelease pool`?
    - Как можно заимплементировать `autorelease pool на с++`?
    - Если я вызову `performSelector:withObject:afterDelay:` объекту пошлется сообщение retain?
    - Если я вызову `performSelector:withObject:afterDelay:` - объекту пошлется сообщение retain?
    - Как происходит обработка `memory warning`? Зависит ли обработка от версии iOS?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    - Когда нужно использовать метод `retainCount` (никогда, почему?)
    @@ -90,17 +93,21 @@ UIKit:
    - Что можно сделать если клавиатура при появлении скрывает важную часть интерфейса?
    - Почему мы должны `релизить IBOutlet'ты` во viewDidUnload?
    - Что такое `awakeFromNeeb`, в чем разница между `xib и nib` файлами?
    - Иерархия наследования UIButton.

    Базы данных, CoreData:
    ----------------------
    - Составить SQL запрос на выборку всех проектов на которых сидит девелопер с
    id ==3. (`Developers:id,name; Projects:id,name; Developers&Projects:project_id,developer_id`)?
    - Зачем нужно делать `двустороннии связи` в таблицах?

    CoreData:
    ---------
    - Что такое `Core Data`?
    - В каких случаях лучше использовать `SQLite`, а в каких `Core Data`?
    - Что такое `контекст (Managed object context)`? Как происходят `изменения в NSManagedObjectContext`?
    - Что такое `Persistent store coordinator`? Зачем нужен `NSPersistentStoreCoordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`(Как синхронизировать контекст)? Синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах)?
    - Использовали ли `NSFetchedResultsController`? Почему?
    - Что такое `Fault` и зачем он нужен?
    - Зачем нужно делать `двустороннии связи` в таблицах?
    - Что таке `Fetched Property` и особенности работы с ним по сравнению с обычной связью?
    - Как использовать `СoreData` совместно с `многопоточностью`?
    - Что такое `NSManagedObjectId`? Можем ли мы сохранить его на потом если приложение закроется?
    @@ -118,7 +125,15 @@ CoreAnimation, CoreGraphics:

    Algorithms:
    -----------
    - Напишите код, который `разворачивает строку на С++`. (переставить символы в строке в обратном порядке.)
    - Напишите код, который `разворачивает строку на С++`. (переставить символы в строке в обратном порядке)?
    - Поменять местами a и b не используя промежуточную переменную?
    - Написать функцию вычисления n-го числа последовательности фебоначи. (если решить через рекурсию, спросят чем опасно такое решение)?
    - Решить задачку о массиве: дан массив из 1001 элемента в котором присутсвуют все числа от 1 до 1000 и одно повторяется дважды, узнать какое, если к каждому элементу можно обратиться только 1 раз?

    Logical:
    --------
    - Есть 4 человека, каждый проходит мост за 1, 2, 5, и 10 минут соответственно. Через мост они могут переходить только парами, держась за руку и только с фонариком. Притом один должен вернуться обратно и передать фонарик. Необходимо переправить всех за 17 мин на другую сторону. Задача решаема.


    Code Puzzels:
    -------------
    @@ -240,3 +255,7 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    NSLog(@"D %d", [object retainCount]);
    ```
    Общие дополнительные вопросы:
    -----------------------------
    - Анкета в которой просят оценить свои знания по технологиям по 10 бальной шкале.
    -
  17. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,7 @@ General:
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона (Singleton)` в `ARC` и в `non-ARC`?
    - Какие еще `паттерны` знаете?
    - Паттерны `порождающие, создания объектов` (Creational): `Singleton, Abstarct Factory`?
    - Паттерны `порождающие, создания объектов (Creational): Singleton, Abstarct Factory`?
    - Паттерны `структурные` (Structural): `MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite`?
    - Патерны `поведения и взаимодействия объектов` (Behavioral): `Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)`?
    - Что такое `responder chain`?
  18. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 30 additions and 35 deletions.
    65 changes: 30 additions & 35 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,7 @@
    General:
    --------
    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о паттерне `MVC`. Чем отличается `пассивная` модель от `активной`?
    - Расскажите о `паттерне MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона (Singleton)` в `ARC` и в `non-ARC`?
    - Какие еще `паттерны` знаете?
    - Паттерны `порождающие, создания объектов` (Creational): `Singleton, Abstarct Factory`?
    @@ -15,15 +15,15 @@ General:
    Objective-C, Foundation:
    ------------------------
    - Опишите основные понятия ОО программирования в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Что такое назначеный инициализатор (`designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду if (self = [super ...]))
    - Что такое назначеный `инициализатор (designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду `if (self = [super ...])`)?
    - Какие существуют `root` классы в iOS? Для чего нужны `root` классы?
    - Что такое указатель `isa`? Для чего он нужен?
    - Что такое `указатель isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория vs extension`?
    - Можно ли добавить `ivar` в категорию?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs наследование`?
    - Какая разница м/у использование `делегатов (delegation)` и `нотификейшенов (notification)`?
    - Чем отличается `NSSet` от `NSArray`? Какие операции происходят быстро в NSSet и какае в NSArray?
    - Чем отличается `NSSet от NSArray`? Какие `операции` происходят быстро в `NSSet` и какие в `NSArray`?
    - `Формальный и неформальный (informal)` протокол?
    - Есть ли `приватные и защищенные` методы в Objective-C?
    - Как имитировать `множественное наследование`?
    @@ -32,7 +32,7 @@ Objective-C, Foundation:
    - Что такое `designated initializer`?
    - Как удалить объект в ходе итерации по циклу?
    - Что такое `Run Loop`?
    - Как лучше всего загрузить UIImage c диска(с кеша)?
    - Как лучше всего загрузить `UIImage c диска(с кеша)`?
    - Какой контент лучше хранить в `Documents`, а какой в `Cache`?
    - Как связаны `NSRunLoop и NSAutoreleasePool` на пальцах?
    - Почему нам не следует вызывать `instance методы в методе initialize`,?
    @@ -47,9 +47,9 @@ Memory Management:
    - Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
    - `Weak vs assign`, `strong vs copy`?
    - `Atomic vs nonatomic`. Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    - Зачем все свойства ссылающиеся на делегаты strong/retain. :)))
    - Зачем все свойства ссылающиеся на делегаты `strong/retain`. :)))
    - Что такое `autorelease pool`?
    - Как можно заимплементировать autorelease pool на с++?
    - Как можно заимплементировать `autorelease pool на с++`?
    - Если я вызову `performSelector:withObject:afterDelay:` – объекту пошлется сообщение retain?
    - Как происходит обработка `memory warning`? Зависит ли обработка от версии iOS?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    @@ -73,13 +73,13 @@ Multithreading:
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Чем отличается `dispatch_async от dispatch_sync`?
    - Для чего при разработке под iOS использовать `POSIX-потоки`? `pthread_create(&thread, NULL, startTimer, (void *)t);`
    - А чем реально POSIX-потоки лучше чем GCD или NSOperationQueue вместе с NSOperation? Приходилось ри реально использовать POSIX и как в этом были прюсы? Реально, просто интересно…
    - А чем реально `POSIX-потоки` лучше чем `GCD или NSOperationQueue вместе с NSOperation`? Приходилось ри реально использовать POSIX и как в этом были прюсы? Реально, просто интересно…
    `Use POSIX calls if cross-platform portability is required. If you are writing networking code that runs exclusively in OS X and iOS, you should generally avoid POSIX networking calls, because they are harder to work with than higher-level APIs. However, if you are writing networking code that must be shared with other platforms, you can use the POSIX networking APIs so that you can use the same code everywhere. `

    UIKit:
    ------
    - Разница между свойствами bounds и frame объекта UIView
    - Какие бывают состояния у приложения?
    - Разница между свойствами `bounds и frame` объекта UIView
    - Какие бывают `состояния` у приложения?
    - Цикл жизни `UIViewController`?
    - Что такое `View` (представление) и что такое `window`?
    - Какого разрешение экранов iphon'ов, и в чем разница между `points (точками)` и `пикселями (pixels)`?
    @@ -95,45 +95,40 @@ CoreData:
    ---------
    - Что такое `Core Data`?
    - В каких случаях лучше использовать `SQLite`, а в каких `Core Data`?
    - Что такое контекст- `Managed object context`?
    - Что такое `Persistent store coordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`?
    - Что такое `контекст (Managed object context)`? Как происходят `изменения в NSManagedObjectContext`?
    - Что такое `Persistent store coordinator`? Зачем нужен `NSPersistentStoreCoordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`(Как синхронизировать контекст)? Синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах)?
    - Использовали ли `NSFetchedResultsController`? Почему?
    - Что такое `Faul`t и зачем он нужен
    - Как происходят изменения в NSManagedObjectContext
    - Синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах).
    - Зачем нужен NSPersistentStoreCoordinator
    - Зачем нужно делать двустороннии связи в таблицах
    - Что таке Fetched Property и особенности работы с ним по сравнению с обычной связью
    - Как использовать coreData совместно с многопоточностью?
    - Что такое NSManagedObjectId? Можем ли мы сохранить его на потом еслиприложение закроется
    - Какие типы хранилищ поддерживает CoreData?
    - Что такое ленивая загрузка (lazy loading)? Что ее связывает с CoreData? Опишите ситуация когда она может быть полезной?
    - Что такое fetch result controlle?
    - Как синхронизировать контекст?
    - Что такое `Fault` и зачем он нужен?
    - Зачем нужно делать `двустороннии связи` в таблицах?
    - Что таке `Fetched Property` и особенности работы с ним по сравнению с обычной связью?
    - Как использовать `СoreData` совместно с `многопоточностью`?
    - Что такое `NSManagedObjectId`? Можем ли мы сохранить его на потом если приложение закроется?
    - Какие `типы хранилищ` поддерживает CoreData?
    - Что такое `ленивая загрузка (lazy loading)`? Что ее связывает с CoreData? Опишите ситуация когда она может быть полезной?

    CoreAnimation, CoreGraphics:
    ----------------------------
    - Чем отличается UIView от CALayer
    - Какие типы CALayer есть?
    - Чем отличается UIView based Animation от Core Animation
    - Тайминги в CoreAnimation
    - Что такое backing store
    - Чем отличаются аффинные преобразования от трехмерных
    - Чем отличается `UIView от CALayer`?
    - Какие типы `CALayer` есть?
    - Чем отличается `UIView based Animation от Core Animation`?
    - Тайминги в `CoreAnimation`?
    - Что такое `backing store`?
    - Чем отличаются `аффинные преобразования от трехмерных`?

    Algorithms:
    -----------
    - Напишите код, который разворачивает строку на С++. (переставить символы в строке в обратном порядке.)
    - Напишите код, который `разворачивает строку на С++`. (переставить символы в строке в обратном порядке.)

    Code Puzzels:
    -------------
    - Что не так с этим кодом? Зачем нужны инициализаторы?
    - Что не так с этим кодом? Зачем нужны `инициализаторы`?

    ```objective-c
    [[[SomeClass alloc] init] init];
    ```

    - Сработает ли таймер? Почему?
    - Сработает ли `таймер`? Почему?

    ```objc
    void startTimer(void *threadId)
    @@ -183,7 +178,7 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    }
    ```

    - В каких случаях лучше использовать strong, а в каких copy для NSString? Почему?
    - В каких случаях лучше использовать `strong`, а в каких `copy` для NSString? Почему?

    ```objc
    @property (nonatomic, strong) NSString *someString;
  19. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 29 additions and 35 deletions.
    64 changes: 29 additions & 35 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,7 @@ General:
    --------
    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о паттерне `MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона` (Singleton) в `ARC` и в `non-ARC`?
    - Реализация `синглтона (Singleton)` в `ARC` и в `non-ARC`?
    - Какие еще `паттерны` знаете?
    - Паттерны `порождающие, создания объектов` (Creational): `Singleton, Abstarct Factory`?
    - Паттерны `структурные` (Structural): `MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite`?
    @@ -45,20 +45,17 @@ Memory Management:
    - `autorelease vs release`?
    - Что означает `ARC`?
    - Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
    - Weak vs assign, strong vs copy?
    - Atomic vs nonatomic. Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    - `Weak vs assign`, `strong vs copy`?
    - `Atomic vs nonatomic`. Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    - Зачем все свойства ссылающиеся на делегаты strong/retain. :)))
    - Что такое `autorelease pool`?
    - Как можно заимплементировать autorelease pool на с++?
    - Если я вызову `performSelector:withObject:afterDelay:` – объекту пошлется сообщение retain?
    - Как происходит обработка `memory warning`? Зависит ли обработка от версии iOS?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    - Когда нужно использовать метод `retainCount` (никогда, почему?)
    - Основные тему управления памятью, такие как владение retain/release/autorelease
    --Что случится если вы добавите только что созданный объект в Mutable Array, и пошлете ему сообщение release?
    --Что случится если послать сообщение release массиву?
    --Что случится если вы удалите объект из массива и попытаетесь его использовать?
    - С подвохом: сборщик мусора для iPhone.
    - Основные тему управления памятью, такие как владение `retain/release/autorelease`. Что случится если вы добавите только что созданный объект в Mutable Array, и пошлете ему сообщение release? Что случится если послать сообщение release массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
    - С подвохом: `сборщик мусора` для iPhone.

    Networking:
    ----------
    @@ -81,19 +78,18 @@ Multithreading:

    UIKit:
    ------
    - Чем отличается frame от bounds?
    - Разница между свойствами bounds и frame объекта UIView
    - Какие бывают состояния у приложения?
    - Цикл жизни UIViewController?
    - что такое View (представление) и что такое window?
    - разница между свойствами bounds и frame объекта UIView
    какого разрешение экранов iphon'ов, и в чем разница между points (точками) и пикселями (pixels)?
    - что такое responder chain (цепочка обязанностей, паттерн chain of responsibility, на примере UI компонентов iOS ), becomeFirstResponder.
    - что означают IBOutlet и IBAction, для чего они нужны, и что значат для препроцессора?
    - как работает UITableView?
    - Как многопоточность работает с UIKit?
    - Цикл жизни `UIViewController`?
    - Что такое `View` (представление) и что такое `window`?
    - Какого разрешение экранов iphon'ов, и в чем разница между `points (точками)` и `пикселями (pixels)`?
    - Что такое `responder chain` (цепочка обязанностей, `паттерн chain of responsibility`, на примере UI компонентов iOS ), `becomeFirstResponder`.
    - Что означают `IBOutlet` и `IBAction`, для чего они нужны, и что значат для препроцессора?
    - Как работает `UITableView`?
    - Как многопоточность работает с `UIKit`?
    - Что можно сделать если клавиатура при появлении скрывает важную часть интерфейса?
    - Почему мы должны релизить IBOutlet'ты во viewDidUnload?
    - Что такое awakeFromNeeb, в чем разница между xib и nib файлами?
    - Почему мы должны `релизить IBOutlet'ты` во viewDidUnload?
    - Что такое `awakeFromNeeb`, в чем разница между `xib и nib` файлами?

    CoreData:
    ---------
    @@ -103,12 +99,12 @@ CoreData:
    - Что такое `Persistent store coordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`?
    - Использовали ли `NSFetchedResultsController`? Почему?
    - что такое Fault и зачем он нужен
    - как происходят изменения в NSManagedObjectContext
    - синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах).
    - зачем нужен NSPersistentStoreCoordinator
    - зачем нужно делать двустороннии связи в таблицах
    - что таке Fetched Property и особенности работы с ним по сравнению с обычной связью
    - Что такое `Faul`t и зачем он нужен
    - Как происходят изменения в NSManagedObjectContext
    - Синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах).
    - Зачем нужен NSPersistentStoreCoordinator
    - Зачем нужно делать двустороннии связи в таблицах
    - Что таке Fetched Property и особенности работы с ним по сравнению с обычной связью
    - Как использовать coreData совместно с многопоточностью?
    - Что такое NSManagedObjectId? Можем ли мы сохранить его на потом еслиприложение закроется
    - Какие типы хранилищ поддерживает CoreData?
    @@ -118,18 +114,16 @@ CoreData:

    CoreAnimation, CoreGraphics:
    ----------------------------
    - чем отличается UIView от CALayer
    - какие типы CALayer есть?
    - чем отличается UIView based Animation от Core Animation
    - тайминги в CoreAnimation
    - что такое backing store
    - чем отличаются аффинные преобразования от трехмерных
    -
    - Чем отличается UIView от CALayer
    - Какие типы CALayer есть?
    - Чем отличается UIView based Animation от Core Animation
    - Тайминги в CoreAnimation
    - Что такое backing store
    - Чем отличаются аффинные преобразования от трехмерных

    Algorithms:
    -----------
    - Напишите код, который разворачивает строку на С++. (переставить символы в строке в обратном порядке.)
    -

    Code Puzzels:
    -------------
    @@ -189,14 +183,14 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    }
    ```

    В каких случаях лучше использовать strong, а в каких copy для NSString? Почему?
    - В каких случаях лучше использовать strong, а в каких copy для NSString? Почему?

    ```objc
    @property (nonatomic, strong) NSString *someString;
    @property (nonatomic, copy) NSString *anotherString;
    ```

    Что выведется в консоль? Почему?
    - Что выведется в консоль? Почему?

    ```objc
    - (BOOL)objectsCount
  20. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 61 additions and 15 deletions.
    76 changes: 61 additions & 15 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -9,11 +9,13 @@ General:
    - Паттерны `порождающие, создания объектов` (Creational): `Singleton, Abstarct Factory`?
    - Паттерны `структурные` (Structural): `MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite`?
    - Патерны `поведения и взаимодействия объектов` (Behavioral): `Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)`?
    - Что такое responder chain?
    - Как работают push нотификации?
    - Что такое `responder chain`?
    - Как работают `push нотификации`?

    Objective-C, Foundation:
    ------------------------
    - Опишите основные понятия ОО программирования в терминах Objective-C (`интерфейс, реализация, свойства, протоколы,` и т.д)
    - Что такое назначеный инициализатор (`designated initializer`), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду if (self = [super ...]))
    - Какие существуют `root` классы в iOS? Для чего нужны `root` классы?
    - Что такое указатель `isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    @@ -29,23 +31,34 @@ Objective-C, Foundation:
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - Как удалить объект в ходе итерации по циклу?
    - Что такое Run Loop?
    - Что такое `Run Loop`?
    - Как лучше всего загрузить UIImage c диска(с кеша)?
    - Какой контент лучше хранить в Documents, а какой в Cache?
    - Какой контент лучше хранить в `Documents`, а какой в `Cache`?
    - Как связаны `NSRunLoop и NSAutoreleasePool` на пальцах?
    - Почему нам не следует вызывать `instance методы в методе initialize`,?
    - `NSCoding, archiving`
    - Протокол `NSCopying`, почему мы не можем просто использовать любой собственный объект в качестве ключа в словарях (NSDictionary) , что нужно сделать чтобы решить эту проблему? (разница между глубоким и поверхностным копированием)

    Memory Management:
    ------------------
    - Как происходит ручное управление памятью в iOS?
    - autorelease vs release?
    - Что означает ARC?
    - Как происходит `ручное управление памятью - MRC` в iOS?
    - `autorelease vs release`?
    - Что означает `ARC`?
    - Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
    - Weak vs assign, strong vs copy?
    - Atomic vs nonatomic. Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    - Зачем все свойства ссылающиеся на делегаты strong/retain. :)))
    - Что такое autorelease pool?
    - Что такое `autorelease pool`?
    - Как можно заимплементировать autorelease pool на с++?
    - Если я вызову performSelector:withObject:afterDelay: – объекту пошлется сообщение retain?
    - Как происходит обработка memory warning? Зависит ли обработка от версии iOS?
    - Если я вызову `performSelector:withObject:afterDelay:` – объекту пошлется сообщение retain?
    - Как происходит обработка `memory warning`? Зависит ли обработка от версии iOS?
    - Напишите простую реализацию `NSAutoreleasePoll` на Objective-C
    - Когда нужно использовать метод `retainCount` (никогда, почему?)
    - Основные тему управления памятью, такие как владение retain/release/autorelease
    --Что случится если вы добавите только что созданный объект в Mutable Array, и пошлете ему сообщение release?
    --Что случится если послать сообщение release массиву?
    --Что случится если вы удалите объект из массива и попытаетесь его использовать?
    - С подвохом: сборщик мусора для iPhone.

    Networking:
    ----------
    @@ -62,24 +75,61 @@ Multithreading:
    - `Асинхронность` vs `многопоточность`. Чем отличаются?
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Чем отличается `dispatch_async от dispatch_sync`?
    - Для чего при разработке под iOS использовать `POSIX-потоки`? `pthread_create(&thread, NULL, startTimer, (void *)t);`
    - А чем реально POSIX-потоки лучше чем GCD или NSOperationQueue вместе с NSOperation? Приходилось ри реально использовать POSIX и как в этом были прюсы? Реально, просто интересно…
    `Use POSIX calls if cross-platform portability is required. If you are writing networking code that runs exclusively in OS X and iOS, you should generally avoid POSIX networking calls, because they are harder to work with than higher-level APIs. However, if you are writing networking code that must be shared with other platforms, you can use the POSIX networking APIs so that you can use the same code everywhere. `

    UIKit:
    ------
    - Чем отличается frame от bounds?
    - Какие бывают состояния у приложения?
    - Цикл жизни UIViewController?
    - что такое View (представление) и что такое window?
    - разница между свойствами bounds и frame объекта UIView
    какого разрешение экранов iphon'ов, и в чем разница между points (точками) и пикселями (pixels)?
    - что такое responder chain (цепочка обязанностей, паттерн chain of responsibility, на примере UI компонентов iOS ), becomeFirstResponder.
    - что означают IBOutlet и IBAction, для чего они нужны, и что значат для препроцессора?
    - как работает UITableView?
    - Как многопоточность работает с UIKit?
    - Что можно сделать если клавиатура при появлении скрывает важную часть интерфейса?
    - Почему мы должны релизить IBOutlet'ты во viewDidUnload?
    - Что такое awakeFromNeeb, в чем разница между xib и nib файлами?

    CoreData:
    ---------
    - Что такое `Core Data`?
    - В каких случаях лучше использовать `SQLite`, а в каких `Core Data`?
    - Что такое `Managed object context`?
    - Что такое контекст- `Managed object context`?
    - Что такое `Persistent store coordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`?
    - Использовали ли `NSFetchedResultsController`? Почему?
    - что такое Fault и зачем он нужен
    - как происходят изменения в NSManagedObjectContext
    - синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах).
    - зачем нужен NSPersistentStoreCoordinator
    - зачем нужно делать двустороннии связи в таблицах
    - что таке Fetched Property и особенности работы с ним по сравнению с обычной связью
    - Как использовать coreData совместно с многопоточностью?
    - Что такое NSManagedObjectId? Можем ли мы сохранить его на потом еслиприложение закроется
    - Какие типы хранилищ поддерживает CoreData?
    - Что такое ленивая загрузка (lazy loading)? Что ее связывает с CoreData? Опишите ситуация когда она может быть полезной?
    - Что такое fetch result controlle?
    - Как синхронизировать контекст?

    CoreAnimation, CoreGraphics:
    ----------------------------
    - чем отличается UIView от CALayer
    - какие типы CALayer есть?
    - чем отличается UIView based Animation от Core Animation
    - тайминги в CoreAnimation
    - что такое backing store
    - чем отличаются аффинные преобразования от трехмерных
    -

    Algorithms:
    -----------
    - Напишите код, который разворачивает строку на С++. (переставить символы в строке в обратном порядке.)
    -

    Code Puzzels:
    -------------
    @@ -201,7 +251,3 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    NSLog(@"D %d", [object retainCount]);
    ```
    Algorithms:
    -----------
    - Напишите код, который разворачивает строку на С++.
  21. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 10 additions and 0 deletions.
    10 changes: 10 additions & 0 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -9,6 +9,8 @@ General:
    - Паттерны `порождающие, создания объектов` (Creational): `Singleton, Abstarct Factory`?
    - Паттерны `структурные` (Structural): `MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite`?
    - Патерны `поведения и взаимодействия объектов` (Behavioral): `Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)`?
    - Что такое responder chain?
    - Как работают push нотификации?

    Objective-C, Foundation:
    ------------------------
    @@ -27,6 +29,9 @@ Objective-C, Foundation:
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - Как удалить объект в ходе итерации по циклу?
    - Что такое Run Loop?
    - Как лучше всего загрузить UIImage c диска(с кеша)?
    - Какой контент лучше хранить в Documents, а какой в Cache?

    Memory Management:
    ------------------
    @@ -39,6 +44,8 @@ Memory Management:
    - Зачем все свойства ссылающиеся на делегаты strong/retain. :)))
    - Что такое autorelease pool?
    - Как можно заимплементировать autorelease pool на с++?
    - Если я вызову performSelector:withObject:afterDelay: – объекту пошлется сообщение retain?
    - Как происходит обработка memory warning? Зависит ли обработка от версии iOS?

    Networking:
    ----------
    @@ -58,6 +65,9 @@ Multithreading:

    UIKit:
    ------
    - Чем отличается frame от bounds?
    - Какие бывают состояния у приложения?
    - Цикл жизни UIViewController?

    CoreData:
    ---------
  22. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -81,7 +81,7 @@ Code Puzzels:

    - Сработает ли таймер? Почему?

    ```objective-c
    ```objc
    void startTimer(void *threadId)
    {
    [NSTimer scheduleTimerWithTimeInterval:10.0f
    @@ -138,7 +138,7 @@ pthread_create(&thread, NULL, startTimer, (void *)t);

    — Что выведется в консоль? Почему?

    ```
    ```objc
    - (BOOL)objectsCount
    {
    NSMutableArray *array = [NSMutableArray new];
    @@ -164,7 +164,7 @@ pthread_create(&thread, NULL, startTimer, (void *)t);

    - Выведется ли в дебагер «Hello world»? Почему?

    ```objective-c
    ```objc
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    dispatch_sync(dispatch_get_main_queue(), ^{
    @@ -178,7 +178,7 @@ pthread_create(&thread, NULL, startTimer, (void *)t);

    - Что выведется в консоль?

    ```objective-c
    ```objc
    dispatch_async(dispatch_get_main_queue(), ^
    {
    NSLog(@"A %d", [object retainCount]);
  23. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 73 additions and 68 deletions.
    141 changes: 73 additions & 68 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,6 @@
    =======
    General:
    --------

    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о паттерне `MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона` (Singleton) в `ARC` и в `non-ARC`?
    @@ -13,7 +12,6 @@ General:

    Objective-C, Foundation:
    ------------------------

    - Какие существуют `root` классы в iOS? Для чего нужны `root` классы?
    - Что такое указатель `isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    @@ -28,9 +26,60 @@ Objective-C, Foundation:
    - Что такое `KVO`? Когда его нужно использовать?
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - Как удалить объект в ходе итерации по циклу?

    Memory Management:
    ------------------
    - Как происходит ручное управление памятью в iOS?
    - autorelease vs release?
    - Что означает ARC?
    - Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
    - Weak vs assign, strong vs copy?
    - Atomic vs nonatomic. Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    - Зачем все свойства ссылающиеся на делегаты strong/retain. :)))
    - Что такое autorelease pool?
    - Как можно заимплементировать autorelease pool на с++?

    Networking:
    ----------
    - Преимущества и недостатки `синхронного и асинхронного` соединения?
    - Что означает `http, tcp`?
    - Какие различия между `HEAD, GET, POST, PUT`?

    Multithreading:
    ---------------
    - Что такое `deadlock`?
    - Что такое `livelock`?
    - Что такое `семафор (semafor)`?
    - Что такое `мьютекс (mutex)`?
    - `Асинхронность` vs `многопоточность`. Чем отличаются?
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Чем отличается `dispatch_async от dispatch_sync`?

    — Как удалить объект в ходе итерации по циклу?
    — Сработает ли таймер? Почему?
    UIKit:
    ------

    CoreData:
    ---------
    - Что такое `Core Data`?
    - В каких случаях лучше использовать `SQLite`, а в каких `Core Data`?
    - Что такое `Managed object context`?
    - Что такое `Persistent store coordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`?
    - Использовали ли `NSFetchedResultsController`? Почему?

    CoreAnimation, CoreGraphics:
    ----------------------------

    Code Puzzels:
    -------------
    - Что не так с этим кодом? Зачем нужны инициализаторы?

    ```objective-c
    [[[SomeClass alloc] init] init];
    ```

    - Сработает ли таймер? Почему?

    ```objective-c
    void startTimer(void *threadId)
    @@ -44,15 +93,17 @@ void startTimer(void *threadId)

    pthread_create(&thread, NULL, startTimer, (void *)t);
    ```
    — Какой метод вызовется: класса A или класса B? Как надо изменить код, чтобы вызвался метод класса A?
    - Какой метод вызовется: класса A или класса B? Как надо изменить код, чтобы вызвался метод класса A?
    ```objc
    @interface A : NSObject
    - (void)someMethod;
    @end
    @implementation A
    - (void)someMethod {
    - (void)someMethod
    {
    NSLog(@"This is class A");
    }
    @end
    @@ -61,7 +112,8 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    @end
    @implementation B
    - (void)someMethod {
    - (void)someMethod
    {
    NSLog(@"This is class B");
    }
    @end
    @@ -70,24 +122,13 @@ pthread_create(&thread, NULL, startTimer, (void *)t);
    @end
    @implementation C
    - (void)method {
    - (void)method
    {
    A *a = [B new];
    [a someMethod];
    }
    ```

    Memory Management:
    ------------------

    — Как происходит ручное управление памятью в iOS?
    — autorelease vs release?
    — Что означает ARC?
    — Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
    — Weak vs assign, strong vs copy?
    — Atomic vs nonatomic. Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    — Зачем все свойства ссылающиеся на делегаты strong/retain. :)))
    — Что такое autorelease pool?
    — Как можно заимплементировать autorelease pool на с++?
    — В каких случаях лучше использовать strong, а в каких copy для NSString? Почему?

    ```objc
    @@ -96,42 +137,31 @@ Memory Management:
    ```

    — Что выведется в консоль? Почему?

    ```
    - (BOOL)objectsCount {
    - (BOOL)objectsCount
    {
    NSMutableArray *array = [NSMutableArray new];
    for (NSInteger i = 0; i < 1024; i++) {
    for (NSInteger i = 0; i < 1024; i++)
    {
    [array addObject:[NSNumber numberWithInt:i]];
    }
    return array.count;
    }
    - (void)someMethod {
    if ([self objectsCount]) {
    - (void)someMethod
    {
    if ([self objectsCount])
    {
    NSLog(@"has objects");
    }
    else {
    else
    {
    NSLog(@"no objects");
    }
    }
    ```

    Networking:
    ----------

    - Преимущества и недостатки `синхронного и асинхронного` соединения?
    - Что означает `http, tcp`?
    - Какие различия между `HEAD, GET, POST, PUT`?

    Multithreading:
    ---------------

    - Что такое `deadlock`?
    - Что такое `livelock`?
    - Что такое `семафор (semafor)`?
    - Что такое `мьютекс (mutex)`?
    - `Асинхронность` vs `многопоточность`. Чем отличаются?
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Чем отличается `dispatch_async от dispatch_sync`?
    - Выведется ли в дебагер «Hello world»? Почему?

    ```objective-c
    @@ -145,6 +175,7 @@ Multithreading:
    return YES;
    }
    ```

    - Что выведется в консоль?

    ```objective-c
    @@ -160,32 +191,6 @@ Multithreading:
    NSLog(@"D %d", [object retainCount]);
    ```
    UIKit:
    ------
    CoreData:
    ---------
    - Что такое `Core Data`?
    - В каких случаях лучше использовать `SQLite`, а в каких `Core Data`?
    - Что такое `Managed object context`?
    - Что такое `Persistent store coordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`?
    - Использовали ли `NSFetchedResultsController`? Почему?
    CoreAnimation, CoreGraphics:
    ----------------------------
    Code Puzzels:
    -------------
    - Что не так с этим кодом? Зачем нужны инициализаторы?
    ```objective-c
    [[[SomeClass alloc] init] init];
    ```



    Algorithms:
    -----------
  24. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 10 additions and 4 deletions.
    14 changes: 10 additions & 4 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -28,11 +28,7 @@ Objective-C, Foundation:
    - Что такое `KVO`? Когда его нужно использовать?
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - Что не так с этим кодом? Зачем нужны инициализаторы?

    ```objective-c
    [[[SomeClass alloc] init] init];
    ```
    — Как удалить объект в ходе итерации по циклу?
    — Сработает ли таймер? Почему?

    @@ -180,6 +176,16 @@ CoreData:
    CoreAnimation, CoreGraphics:
    ----------------------------
    Code Puzzels:
    -------------
    - Что не так с этим кодом? Зачем нужны инициализаторы?
    ```objective-c
    [[[SomeClass alloc] init] init];
    ```



    Algorithms:
    -----------

  25. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 94 additions and 9 deletions.
    103 changes: 94 additions & 9 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -33,16 +33,98 @@ Objective-C, Foundation:
    ```objective-c
    [[[SomeClass alloc] init] init];
    ```
    — Как удалить объект в ходе итерации по циклу?
    — Сработает ли таймер? Почему?

    ```objective-c
    void startTimer(void *threadId)
    {
    [NSTimer scheduleTimerWithTimeInterval:10.0f
    target:aTarget
    selector:@selector(tick: )
    userInfo:nil
    repeats:NO];
    }

    pthread_create(&thread, NULL, startTimer, (void *)t);
    ```
    — Какой метод вызовется: класса A или класса B? Как надо изменить код, чтобы вызвался метод класса A?
    ```objc
    @interface A : NSObject
    - (void)someMethod;
    @end
    @implementation A
    - (void)someMethod {
    NSLog(@"This is class A");
    }
    @end
    @interface B : A
    @end
    @implementation B
    - (void)someMethod {
    NSLog(@"This is class B");
    }
    @end
    @interface C : NSObject
    @end
    @implementation C
    - (void)method {
    A *a = [B new];
    [a someMethod];
    }
    ```

    Memory Management:
    ------------------

    — Как происходит ручное управление памятью в iOS?
    — autorelease vs release?
    — Что означает ARC?
    — Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
    — Weak vs assign, strong vs copy?
    — Atomic vs nonatomic. Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    — Зачем все свойства ссылающиеся на делегаты strong/retain. :)))
    — Что такое autorelease pool?
    — Как можно заимплементировать autorelease pool на с++?
    — В каких случаях лучше использовать strong, а в каких copy для NSString? Почему?

    ```objc
    @property (nonatomic, strong) NSString *someString;
    @property (nonatomic, copy) NSString *anotherString;
    ```

    — Что выведется в консоль? Почему?
    ```
    - (BOOL)objectsCount {
    NSMutableArray *array = [NSMutableArray new];
    for (NSInteger i = 0; i < 1024; i++) {
    [array addObject:[NSNumber numberWithInt:i]];
    }
    return array.count;
    }
    - (void)someMethod {
    if ([self objectsCount]) {
    NSLog(@"has objects");
    }
    else {
    NSLog(@"no objects");
    }
    }
    ```

    Networking:
    ----------

    - Преимущества и недостатки синхронного и асинхронного соединения?
    - Что означает http, tcp?
    - Какие различия между HEAD, GET, POST, PUT?
    - Преимущества и недостатки `синхронного и асинхронного` соединения?
    - Что означает `http, tcp`?
    - Какие различия между `HEAD, GET, POST, PUT`?

    Multithreading:
    ---------------
    @@ -68,7 +150,7 @@ Multithreading:
    }
    ```
    - Что выведется в консоль?
    -

    ```objective-c
    dispatch_async(dispatch_get_main_queue(), ^
    {
    @@ -81,21 +163,24 @@ Multithreading:
    });
    NSLog(@"D %d", [object retainCount]);
    ```
    UIKit:
    ------
    CoreData:
    ---------
    - Что такое `Core Data`?
    - В каких случаях лучше использовать SQLite, а в каких Core Data?
    - Что такое Managed object context?
    - Что такое Persistent store coordinator?
    - Какие есть нюансы при использовании Core Data в разных потоках? Как синхронизировать данные между потоками?
    - Использовали ли NSFetchedResultsController? Почему?
    - В каких случаях лучше использовать `SQLite`, а в каких `Core Data`?
    - Что такое `Managed object context`?
    - Что такое `Persistent store coordinator`?
    - Какие есть нюансы при использовании `Core Data в разных потоках`? Как `синхронизировать данные между потоками`?
    - Использовали ли `NSFetchedResultsController`? Почему?
    CoreAnimation, CoreGraphics:
    ----------------------------
    Algorithms:
    -----------
    - Напишите код, который разворачивает строку на С++.
  26. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 46 additions and 9 deletions.
    55 changes: 46 additions & 9 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,7 @@ Objective-C, Foundation:
    - Какие существуют `root` классы в iOS? Для чего нужны `root` классы?
    - Что такое указатель `isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория` vs `extension`?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория vs extension`?
    - Можно ли добавить `ivar` в категорию?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs наследование`?
    - Какая разница м/у использование `делегатов (delegation)` и `нотификейшенов (notification)`?
    @@ -35,30 +35,67 @@ Objective-C, Foundation:
    ```

    Memory Management:
    -------
    ------------------

    Networking
    -------
    Networking:
    ----------

    - Преимущества и недостатки синхронного и асинхронного соединения?
    - Что означает http, tcp?
    - Какие различия между HEAD, GET, POST, PUT?

    Multithreading:
    -------
    ---------------

    - Что такое `deadlock`?
    - Что такое `livelock`?
    - Что такое `семафор (semafor)`?
    - Что такое `мьютекс (mutex)`?
    - `Асинхронность` vs `многопоточность`. Чем отличаются?
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Чем отличается dispatch_async от dispatch_sync?
    - Чем отличается `dispatch_async от dispatch_sync`?
    - Выведется ли в дебагер «Hello world»? Почему?

    ```objective-c
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    dispatch_sync(dispatch_get_main_queue(), ^{
    NSLog(@"Hello world");
    });

    /* Another implementation */
    return YES;
    }
    ```
    - Что выведется в консоль?
    -
    ```objective-c
    dispatch_async(dispatch_get_main_queue(), ^
    {
    NSLog(@"A %d", [object retainCount]);
    dispatch_async(dispatch_get_main_queue(), ^
    {
    NSLog(@"B %d", [object retainCount]);
    });
    NSLog(@"C %d", [object retainCount]);
    });
    NSLog(@"D %d", [object retainCount]);
    ```
    UIKit:
    -------
    ------
    CoreData:
    -------
    ---------
    - Что такое `Core Data`?
    - В каких случаях лучше использовать SQLite, а в каких Core Data?
    - Что такое Managed object context?
    - Что такое Persistent store coordinator?
    - Какие есть нюансы при использовании Core Data в разных потоках? Как синхронизировать данные между потоками?
    - Использовали ли NSFetchedResultsController? Почему?
    CoreAnimation, CoreGraphics:
    -------
    ----------------------------
    Algorithms:
    -----------
    - Напишите код, который разворачивает строку на С++.
  27. @arturlector arturlector revised this gist Jan 11, 2015. 1 changed file with 17 additions and 6 deletions.
    23 changes: 17 additions & 6 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    Вопросы на собеседование iOS разработчика (дополненное издание):
    =======
    General:
    -------
    --------

    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о паттерне `MVC`. Чем отличается `пассивная` модель от `активной`?
    @@ -12,14 +12,14 @@ General:
    - Патерны `поведения и взаимодействия объектов` (Behavioral): `Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)`?

    Objective-C, Foundation:
    -------
    ------------------------

    - Какие существуют `root` классы в iOS? Для чего нужны `root` классы?
    - Что такое указатель `isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория` vs. `extension`?
    - Можно ли добавить ivar в категорию?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs. наследование`?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория` vs `extension`?
    - Можно ли добавить `ivar` в категорию?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs наследование`?
    - Какая разница м/у использование `делегатов (delegation)` и `нотификейшенов (notification)`?
    - Чем отличается `NSSet` от `NSArray`? Какие операции происходят быстро в NSSet и какае в NSArray?
    - `Формальный и неформальный (informal)` протокол?
    @@ -43,11 +43,22 @@ Networking
    Multithreading:
    -------

    - Что такое `deadlock`?
    - Что такое `livelock`?
    - Что такое `семафор (semafor)`?
    - Что такое `мьютекс (mutex)`?
    - `Асинхронность` vs `многопоточность`. Чем отличаются?
    - Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    - Чем отличается dispatch_async от dispatch_sync?
    - Выведется ли в дебагер «Hello world»? Почему?

    UIKit:
    -------

    CoreData
    CoreData:
    -------

    CoreAnimation, CoreGraphics:
    -------

    Algorithms:
  28. @arturlector arturlector revised this gist Jan 10, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -28,7 +28,7 @@ Objective-C, Foundation:
    - Что такое `KVO`? Когда его нужно использовать?
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - Что не так с этим кодом? Зачем нужны инициализаторы?
    - Что не так с этим кодом? Зачем нужны инициализаторы?

    ```objective-c
    [[[SomeClass alloc] init] init];
  29. @arturlector arturlector revised this gist Jan 10, 2015. 1 changed file with 17 additions and 16 deletions.
    33 changes: 17 additions & 16 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -4,32 +4,33 @@ General:
    -------

    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о паттерне MVC. Чем отличается пассивная модель от активной?
    - Реализация `синглтона` (Singleton) в ARC и в non-ARC?
    - Какие еще паттерны знаете?
    - Паттерны `порождающие, создания объектов` (Creational): Singleton, Abstarct Factory?
    - Паттерны `структурные` (Structural): MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite?
    - Патерны `поведения и взаимодействия объектов` (Behavioral): Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)?
    - Расскажите о паттерне `MVC`. Чем отличается `пассивная` модель от `активной`?
    - Реализация `синглтона` (Singleton) в `ARC` и в `non-ARC`?
    - Какие еще `паттерны` знаете?
    - Паттерны `порождающие, создания объектов` (Creational): `Singleton, Abstarct Factory`?
    - Паттерны `структурные` (Structural): `MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite`?
    - Патерны `поведения и взаимодействия объектов` (Behavioral): `Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)`?

    Objective-C, Foundation:
    -------

    - Какие существуют root классы в iOS? Для чего нужны root классы?
    - Что такое указатель isa? Для чего он нужен?
    - Какие существуют `root` классы в iOS? Для чего нужны `root` классы?
    - Что такое указатель `isa`? Для чего он нужен?
    - Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
    - Чем категория отличается от расширения (extension, наименованная категория)? категория vs. extension?
    - Чем `категория` отличается от `расширения` (extension, наименованная категория)? `категория` vs. `extension`?
    - Можно ли добавить ivar в категорию?
    - Когда лучше использовать категорию, а когда наследование? категория vs. наследование?
    - Какая разница м/у использование делегатов (delegation) и нотификейшенов (notification)?
    - Чем отличается NSSet от NSArray? Какие операции происходят быстро в NSSet и какае в NSArray?
    - Formal vs. Informal protocol?
    - Есть ли приватные и защищенные методы в Objective-C?
    - Как имитировать множественное наследование?
    - Когда лучше использовать `категорию`, а когда `наследование`? `категория vs. наследование`?
    - Какая разница м/у использование `делегатов (delegation)` и `нотификейшенов (notification)`?
    - Чем отличается `NSSet` от `NSArray`? Какие операции происходят быстро в NSSet и какае в NSArray?
    - `Формальный и неформальный (informal)` протокол?
    - Есть ли `приватные и защищенные` методы в Objective-C?
    - Как имитировать `множественное наследование`?
    - Что такое `KVO`? Когда его нужно использовать?
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - — Что не так с этим кодом? Зачем нужны инициализаторы?
    ```objective-C

    ```objective-c
    [[[SomeClass alloc] init] init];
    ```

  30. @arturlector arturlector revised this gist Jan 10, 2015. 1 changed file with 10 additions and 10 deletions.
    20 changes: 10 additions & 10 deletions ios-questions-interview.md
    Original file line number Diff line number Diff line change
    @@ -3,13 +3,13 @@
    General:
    -------

    - Чем 'абстрактный' класс отличается от 'интерфейса'?
    - Чем `абстрактный` класс отличается от `интерфейса`?
    - Расскажите о паттерне MVC. Чем отличается пассивная модель от активной?
    - Реализация синглтона (Singleton) в ARC и в non-ARC?
    - Реализация `синглтона` (Singleton) в ARC и в non-ARC?
    - Какие еще паттерны знаете?
    - Паттерны порождающие, создания объектов (Creational): Singleton, Abstarct Factory?
    - Паттерны структурные (Structural): MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite?
    - Патерны поведения и взаимодействия объектов (Behavioral): Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)?
    - Паттерны `порождающие, создания объектов` (Creational): Singleton, Abstarct Factory?
    - Паттерны `структурные` (Structural): MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite?
    - Патерны `поведения и взаимодействия объектов` (Behavioral): Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)?

    Objective-C, Foundation:
    -------
    @@ -25,13 +25,13 @@ Objective-C, Foundation:
    - Formal vs. Informal protocol?
    - Есть ли приватные и защищенные методы в Objective-C?
    - Как имитировать множественное наследование?
    - Что такое KVO? Когда его нужно использовать?
    - Что такое KVC? Когда его нужно использовать?
    - Что такое designated initializer?
    - Что такое `KVO`? Когда его нужно использовать?
    - Что такое `KVC`? Когда его нужно использовать?
    - Что такое `designated initializer`?
    - — Что не так с этим кодом? Зачем нужны инициализаторы?
    ''' Objective-C
    ```objective-C
    [[[SomeClass alloc] init] init];
    '''
    ```

    Memory Management:
    -------