ARC напрямую освобождает только объекты ObjC (не char*
, void*
, int*
...). Однако ARC все еще вызывает метод dealloc объектов. Так что, если у вас есть объект ObjC, который malloc занимает немного памяти и указывает на него символ *, а метод dealloc освобождает память, память все равно будет должным образом удалена.
То же самое для базовых базовых объектов, вам все равно нужно CFRelease
их. Даже бесплатные CF-мосты нуждаются в ручном вызове CFRelease
.