Подтвердить что ты не робот

Поддерживается ли сборка мусора для приложений iPhone?

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

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

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

4b9b3361

Ответ 1

Нет. Сбор мусора слишком велик, чтобы сократить время автономной работы и т.д. На устройстве.

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

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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

Mono touch имеет сбор мусора и работает на iPhone os.

Ответ 5

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