DevPrep

Все темы › Что выведет? Головоломки с собеседований

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

Senior PRO

Задача

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

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store