Какие категории данных не управляются автоматическим подсчётом ссылок в Objective-C?

В Objective-C автоматический подсчёт ссылок (ARC) не управляет следующими категориями данных:

Короткий ответ

Что ответить на собеседовании

В Objective-C автоматический подсчёт ссылок (ARC) не управляет следующими категориями данных:

Подробный разбор

Ответ с пояснениями

В Objective-C автоматический подсчёт ссылок (ARC) не управляет следующими категориями данных:

  • Сырые указатели (raw pointers) — указатели на объекты, которые не являются объектами Objective-C или не управляются ARC.
  • Core Foundation объекты — объекты, созданные с помощью C API (например, CFStringRef, CFArrayRef), которые требуют ручного управления памятью через CFRetain и CFRelease.
  • Объекты, созданные вне ARC (например, в старом коде или с использованием __bridge без управления памятью).

Пример:

CFStringRef cfString = CFStringCreateWithCString(NULL, "Hello", kCFStringEncodingUTF8);
// Нужно вручную вызвать CFRelease(cfString), ARC этого не сделает

NSObject *obj = [[NSObject alloc] init];
// ARC автоматически управляет памятью obj

void *rawPtr = malloc(100);
// Нужно вручную освобождать память через free(rawPtr)

Таким образом, ARC управляет только объектами Objective-C, а для других типов данных требуется ручное управление памятью.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее