Этот проект предназначен для iPhone с iOS 5 с использованием ARC и Core Data.
Все встроенные раскадровки Xcode, у меня есть UITabBarController
с несколькими вкладками. Три из этих представлений UITableViewControllers
с прикрепленным UISearchDisplayController
. Если я имитирую предупреждение памяти в симуляторе iPhone, то все виды, которые не активны, сбрасываются, и когда я нажимаю на вкладке одно из этих представлений с помощью searchDisplayController, NSZombieEnabled сообщает мне -[UISearchDisplayController retain]: message sent to deallocated instance
.
Вот мой -didReceiveMemoryWarning
:
- (void)didReceiveMemoryWarning
{
[(PahAppDelegate *)[[UIApplication sharedApplication] delegate] saveContext];
// Release any cached data, images, etc that aren't in use.
self.searchWasActive = [self.searchDisplayController isActive];
self.savedSearchTerm = [self.searchDisplayController.searchBar text];
self.savedScopeButtonIndex = [self.searchDisplayController.searchBar selectedScopeButtonIndex];
self.fetchedResultsController.delegate = nil;
self.fetchedResultsController = nil;
self.searchFetchedResultsController.delegate = nil;
self.searchFetchedResultsController = nil;
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
}
Мое лучшее предположение заключается в том, что UITableViewController
также сбрасывает подпредставления, и по какой-то причине они не воссоздают их, когда я возвращаюсь к другим вкладкам. Поскольку все эти функциональные возможности встроены в раскадровку, я не совсем уверен, как поступить с запросом на перезагрузку рассматриваемого searchDisplayController
.
Примечание: я никогда не видел, чтобы приложение делало это в реальном мире на устройстве.
(и ни у кого нет моих бета-тестеров), но я не хочу, чтобы Apple отказалась
утверждение приложения из-за этого; плюс исправление кажется
Правильно.
searchDisplayController
является свойством только для чтения, поэтому я не уверен, что предпринять, чтобы загрузить вещи такими, какими они должны быть.