Что выведется в консоль?
Задача
Objective-C, проект собран без ARC (MRC), код выполняется на главном потоке:
NSObject *object = [NSObject new];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"A %lu", (unsigned long)[object retainCount]);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"B %lu", (unsigned long)[object retainCount]);
});
NSLog(@"C %lu", (unsigned long)[object retainCount]);
});
NSLog(@"D %lu", (unsigned long)[object retainCount]);
Что и в каком порядке напечатается?
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep