- Чем
абстрактныйкласс отличается отинтерфейса? - Расскажите о паттерне
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)? - Что такое responder chain?
- Как работают push нотификации?
- Какие существуют
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?
- Как происходит ручное управление памятью в 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?
- Преимущества и недостатки
синхронного и асинхронногосоединения? - Что означает
http, tcp? - Какие различия между
HEAD, GET, POST, PUT?
- Что такое
deadlock? - Что такое
livelock? - Что такое
семафор (semafor)? - Что такое
мьютекс (mutex)? Асинхронностьvsмногопоточность. Чем отличаются?- Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
- Чем отличается
dispatch_async от dispatch_sync?
- Чем отличается frame от bounds?
- Какие бывают состояния у приложения?
- Цикл жизни UIViewController?
- Что такое
Core Data? - В каких случаях лучше использовать
SQLite, а в какихCore Data? - Что такое
Managed object context? - Что такое
Persistent store coordinator? - Какие есть нюансы при использовании
Core Data в разных потоках? Каксинхронизировать данные между потоками? - Использовали ли
NSFetchedResultsController? Почему?
- Что не так с этим кодом? Зачем нужны инициализаторы?
[[[SomeClass alloc] init] init];- Сработает ли таймер? Почему?
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?
@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];
}— В каких случаях лучше использовать strong, а в каких copy для NSString? Почему?
@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");
}
}- Выведется ли в дебагер «Hello world»? Почему?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"Hello world");
});
/* Another implementation */
return YES;
}- Что выведется в консоль?
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]);- Напишите код, который разворачивает строку на С++.