Публичные документы ARC , хотя и не совсем ясно по этому вопросу, по-видимому, предполагают, что, пока каждый класс является либо ARC, либо полностью управляемым вручную, классы могут быть интегрированы в одну программу .
Вы не можете смешивать только ARC и не-ARC в одном классе; В документе говорится, что отправка сообщений retain
, release
, autorelease
или retainCount
любым способом (включая таймеры и отсроченные исполнения, использующие @selector
) запрещена в коде ARC. Таким образом, вы не можете делать не-ARC в классе ARC (потому что необходимые сообщения запрещены), и вы не можете делать ARC в не-ARC-классе (потому что ARC добавляет синтаксические элементы, которые недопустимы без ARC).
В этом же документе немного яснее о том, можете ли вы интегрировать не-ARC библиотеки / фреймворки в программу ARC: Да. Здесь не упоминается, можете ли вы использовать библиотеки / фреймворки ARC в программе, где весь ваш код не является ARC, но, учитывая все вышесказанное, подразумевается, что да.