Назад к вопросам
ivi
Junior — Middle
67
Какие категории данных не управляются автоматическим подсчётом ссылок в Objective-C?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В 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, а для других типов данных требуется ручное управление памятью.