You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Патерны поведения и взаимодействия объектов (Behavioral): Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism)?
Что такое responder chain?
Как работают push нотификации?
Objective-C, Foundation:
Опишите основные понятия ОО программирования в терминах Objective-C (интерфейс, реализация, свойства, протоколы, и т.д)
Что такое назначеный инициализатор (designated initializer), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду if (self = [super ...]))?
Какие существуют root классы в iOS? Для чего нужны root классы?
Что такое указатель isa? Для чего он нужен?
Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали?
Чем категория отличается от расширения (extension, наименованная категория)? категория vs extension?
Можно ли добавить ivar в категорию?
Когда лучше использовать категорию, а когда наследование? категория vs наследование?
Какая разница м/у использование делегатов (delegation) и нотификейшенов (notification)?
Чем отличается NSSet от NSArray? Какие операции происходят быстро в NSSet и какие в NSArray?
Формальный и неформальный (informal) протокол?
Есть ли приватные и защищенные методы в Objective-C?
Как имитировать множественное наследование?
Что такое KVO? Когда его нужно использовать?
Что такое KVC? Когда его нужно использовать?
Что такое designated initializer?
Как удалить объект в ходе итерации по циклу?
Что такое Run Loop?
Как лучше всего загрузить UIImage c диска(с кеша)?
Какой контент лучше хранить в Documents, а какой в Cache?
Как связаны NSRunLoop и NSAutoreleasePool на пальцах?
Почему нам не следует вызывать instance методы в методе initialize,?
NSCoding, archiving
Протокол NSCopying, почему мы не можем просто использовать любой собственный объект в качестве ключа в словарях (NSDictionary) , что нужно сделать чтобы решить эту проблему? (разница между глубоким и поверхностным копированием)
Memory Management:
Как происходит ручное управление памятью - 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 на с++?
Если я вызову performSelector:withObject:afterDelay: – объекту пошлется сообщение retain?
Как происходит обработка memory warning? Зависит ли обработка от версии iOS?
Напишите простую реализацию NSAutoreleasePoll на Objective-C
Когда нужно использовать метод retainCount (никогда, почему?)
Основные тему управления памятью, такие как владение retain/release/autorelease. Что случится если вы добавите только что созданный объект в Mutable Array, и пошлете ему сообщение release? Что случится если послать сообщение release массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
С подвохом: сборщик мусора для iPhone.
Networking:
Преимущества и недостатки синхронного и асинхронного соединения?
Что означает http, tcp?
Какие различия между HEAD, GET, POST, PUT?
Multithreading:
Что такое deadlock?
Что такое livelock?
Что такое семафор (semafor)?
Что такое мьютекс (mutex)?
Асинхронность 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:
Разница между свойствами bounds и frame объекта UIView
Какие бывают состояния у приложения?
Цикл жизни UIViewController?
Что такое View (представление) и что такое window?
Какого разрешение экранов 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)? Как происходят изменения в NSManagedObjectContext?
Что такое Persistent store coordinator? Зачем нужен NSPersistentStoreCoordinator?
Какие есть нюансы при использовании Core Data в разных потоках? Как синхронизировать данные между потоками(Как синхронизировать контекст)? Синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах)?
Использовали ли NSFetchedResultsController? Почему?
Что такое Fault и зачем он нужен?
Зачем нужно делать двустороннии связи в таблицах?
Что таке Fetched Property и особенности работы с ним по сравнению с обычной связью?
Как использовать СoreData совместно с многопоточностью?
Что такое NSManagedObjectId? Можем ли мы сохранить его на потом если приложение закроется?
Какие типы хранилищ поддерживает CoreData?
Что такое ленивая загрузка (lazy loading)? Что ее связывает с CoreData? Опишите ситуация когда она может быть полезной?
CoreAnimation, CoreGraphics:
Чем отличается UIView от CALayer?
Какие типы CALayer есть?
Чем отличается UIView based Animation от Core Animation?
Тайминги в CoreAnimation?
Что такое backing store?
Чем отличаются аффинные преобразования от трехмерных?
Algorithms:
Напишите код, который разворачивает строку на С++. (переставить символы в строке в обратном порядке.)
Code Puzzels:
Что не так с этим кодом? Зачем нужны инициализаторы?