Привет У меня неприятная проблема с управлением памятью в ARC, и я не могу понять, как ее решить. Проблема стоит так, у меня есть следующие объекты:
ObjectManager - синглтон, который выполняет fetchRequests для основных данных и выбирает один или несколько NSManagedObjects
UIViewControllerA - контроллер представления, в котором у меня есть кнопка «PassManagedObject» и свойство, объявленное как показано ниже:
@property (strong, nonatomic) ManagedObject *objectForToday;
in viewDidLoad on UIViewControllerA , я вызываю метод refreshDailyObject , который делает это:
self.objectForToday = nil;
self.objectForToday = [[ObjectManager sharedManager] getDailyObject];
если я нажмите кнопку PassManagedObject I создать UIViewControllerB , передать objectForToday к нему и дисплей это, см. Ниже
- (IBAction)passManagedObjectTapped:(id)sender {
UIViewControllerB *viewController = [[UIViewControllerB alloc] initWithNibName:@"UIViewControllerB"];
viewController.object = self.objectForToday;
[self.navigationController pushViewController:viewController animated:NO];
}
UIViewControllerB имеет свойство, объявленное так:
@property (strong, nonatomic) ManagedObject *object;
и кнопка " Back ", которая делает это:
- (IBAction)backAction:(id)sender {
self.object = nil;
[self.navigationController popViewControllerAnimated:NO];
}
Теперь проблема в следующем. Если я нажимаю непрерывно passManagedObjectTapped, а затем backAction, и снова passManagedObjectTapped и снова backAction, а затем снова passManagedObjectTapped и автоматизирую это, я получаю в итоге Предупреждение о получении памяти 1 , а затем crash .
Приборы не показывают утечек, но мое распределение памяти медленно увеличивается.
Я использую ARC под iOS4.3 и iOS5. Я изо всех сил пытался выяснить, что не так в течение дня. Любая помощь будет высоко оценена.
Спасибо!