Вопрос

Согласно с Еще один стек переполненный пост а drain Сообщение-это звонок только для Apple:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;

Безопасно ли заменить drain с release? Я пытаюсь перенести приложение Objective-C для запуска на Linux (Ubuntu на данный момент). Должен ли я сдаться еще до того, как я начал? (У меня уже есть проблемы, пытаясь получить NSURLConnection работающий)

Это было полезно?

Решение

Из документации Apple о drain:

...] Этот метод ведет себя так же, как релиз. [...

Таким образом, истощение пула с авторелиасом означает, что сделку его неизбежно. На мой взгляд, Apple должна установить drain так как это только создает путаницу.

Но:

Особые соображения:
В собрании мусора, releaseэто неоперация, поэтому, если вы не хотите дать коллекционеру подсказку, важно использовать drain В любом коде, который может быть составлен для мусорной среды.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top