Вопрос

Поддерживает ли iPhone сбор мусора?Если да, то каковы альтернативные способы выполнения операций, выполняемых с использованием +alloc и -init комбинация:

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
UIImage *originalImage = [[UIImage alloc] initWithData:data];
detailViewController = [[[DetailViewController alloc] initWithNibName:@"DetailView bundle:[NSBundle mainBundle]] autorelease];

...и другие команды.Заранее благодарим вас за любую помощь или указания, которые вы можете предоставить.

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

Решение

Нет.Сбор мусора — это слишком большие накладные расходы из-за ограниченного срока службы батареи и т. д.на устройстве.

Вы должны всегда программировать с alloc/release образец в виду.

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
...
[xmlParser release];

или (подходит не для каждой ситуации)

NSXMLParser *xmlParser [[[NSXMLParser alloc] initWithData:xmlData] autorelease];

Надеюсь это поможет!

Другие советы

Нет, сборка мусора на iPhone в настоящее время не поддерживается. Вам необходимо использовать alloc / release / autorelease .

Обратите внимание, что отсутствие сборки мусора означает, что слабые ссылки также не поддерживаются.

Mono touch имеет сборщик мусора и работает на операционной системе iPhone.

Во всем обсуждении никто не говорит о языке Java, в Java сборка мусора встроена в язык, поэтому она неявно доступна в Android, J2ME и Blackberry :), где, как и в Objective-C, это необязательно, поэтому в iPhone GC недоступен.

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