Служит ли использование(){...} в C# той же цели, что и autoreleasepool { ... } в Cocoa?


Я узнал о using(){} в C# --> Использование "using" в C#

Я знаю, что autorelease{} не то же самое, что using(){}, потому что cocoa использует ARC, А C# использует GC. -- > необходимо ли использовать autoreleasepool в программе Swift?

Я просто хочу подтвердить от кого-то, кто использовал оба, если они действительно служат одной и той же цели.

Edit: я нашел сторонний компилятор C#, который, похоже, соединяет эти идеи вместе.

RemObjects C# также имеет поддержка (редко необходимого) ручного объявления пулов автоматического выпуска с помощью синтаксиса using (__autoreleasepool).

Http://www.elementscompiler.com/elements/hydrogene/cocoa.aspx

Служит ли using(){...} В C# той же цели, что и autoreleasepool{...} в какао?

1 2

1 ответ:

Нет, они разные.

Оператор using C#относится к приобретению и утилизации ресурсов. Обычно это внешний ресурс, такой как файл, где получение открывает файл, а удаление закрывает его.

Пул автоматического освобождения Objective-C предназначен для управления временем жизни объектов в памяти. Объект, помещенный в пул, освобождается, когда пул сливается, для пула по умолчанию это происходит в конце каждой итерации цикла событий.