«сообщение отправлено на освобожденный объект» после передачи экземпляра другому View Controller - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть NSMutableArray, содержащий экземпляры моего модельного класса с именем PropertyData (только свойства и никаких методов). В моем приложении есть кнопка «Просмотр на карте», которая при нажатии устанавливает этот NSMutableArray в свойстве контроллера вида карты, прежде чем выдвигать его вид поверх навигации. Контроллер Map View успешно получил этот массив (с помощью NSLOG я распечатал общее количество элементов, полученных в контроллере View Map), но при циклическом просмотре я получил эту ошибку:

[PropertyData lat] message sent to deallocated instance

Есть идеи, почему?

Спасибо за помощь,

Stephane

P.S:

В первом представлении данные контроллера сохраняются в ivar (объявленном как свойство NSMutableArray в интерфейсе и затем синтезируются) с именем rqst_entries и вот как он переключается в представление Map:

-(void)show_map 
{
   PropertiesMapViewController *pMapView = [[PropertiesMapViewController alloc] init];
   pMapView.entries = self.rqst_entries; // pMapView.entries is alsi a NSMutableArray
   [self.navigationController pushViewController:pMapView animated:YES];
}

Вот код, в котором происходит сбой:

if(self.entries != nil)
{
   NSLog(@"received items count=%d",[self.entries count]);
   NSNumberFormater *nf = [[NSNumberFormater alloc] init];
   for(PropertyData *property_data in self.entries)
   {
     if(property_data==nil) continue;
     [nf setNumberStyle:NSNumberFormatterDecimalStyle];
     // CRASH OCCURS HERE:
     NSNumber *lat = [nf numberFromString:property_data.lat]; 
   }

}

1 Ответ

1 голос
/ 14 сентября 2011

Вы должны убедиться, что свойство entries PropertiesMapViewController имеет атрибут сохранения:

@property (nonatomic, retain) NSMutableArray * entries;
...