Под «SwiftObject» я предполагаю, что вы имеете в виду «объект Swift, который не связан с Objective-C».
Для этих объектов нет необходимости в пуле авто-релиза. Концепция автоматического выпуска была создана для упрощения определенных ситуаций ручного сохранения счета, что наиболее важно, когда вы возвращаете значение, но вы не хотите заставлять вызывающего абонента вызывать -release
, потому что это будет хлопотно. Таким образом, вы запланируете -release
, который будет называться "в будущем", "автоматическим выпуском".
Но с ARC это на самом деле не нужно. Компилятор с радостью выполнит утомительную работу по добавлению дополнительных вызовов release
во все места, в которых они будут нужны, а оптимизатор с удовольствием вывезет их обратно из всех мест, в которых они на самом деле не нужны. Поскольку вы не можете создать код с подсчетом вручную в Swift, нет особой необходимости в специальной языковой поддержке для такой удобной системы, как autorelease.
Это не означает, что не-ObjC Swift объекты не попадут в пул авто-релиза; они все еще могут (хотя обычно из-за некоторого неявного соединения). Но программисту не нужно беспокоиться об этом.