xcode Сборка и анализ связанных вопросов - PullRequest
0 голосов
/ 11 августа 2010

Я смотрел видео с WWDC 2010 и теперь начал изучать функциональность инструмента Build and Analyze в xcode 3.2. Это отличный инструмент, который будет выделять ошибки кодирования (особенно для новичка, такого как я!), Даже если они могут не оказать влияния во время выполнения.

Но есть одна вещь, которую мне нужна помощь, чтобы понять.

Когда я нажимаю новый контроллер представления с этим кодом:

SettingsViewController *nextController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];

My_AppAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

[delegate.myNavController pushViewController:nextController animated:YES];

Анализатор сообщает, что существует потенциальная утечка памяти. Я могу понять это в некотором смысле, поскольку я выделяю NextController, но никогда не выпускаю его. Но если я пытаюсь выпустить его, мое приложение падает.

Я не получаю никаких утечек при анализе с помощью инструментов на симуляторе и физическом устройстве.

Будет ли Apple останавливать это приложение или оно пройдет их тестирование?

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Вы, вероятно, не будете отклонены за утечки, если они не приведут к необработанному предупреждению памяти и сбою. Тем не менее, конкретная проблема, которую вы упоминаете, может быть исправлена ​​с помощью autorelease.

SettingsViewController *nextController = [[[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil] autorelease];

Контроллер навигации должен сохранять контроллер вида в течение всего срока его службы.

0 голосов
/ 26 августа 2010

Отправил приложение в Apple, и оно прошло.

...