TableView - сброс iVar при возврате из представления сведений - PullRequest
0 голосов
/ 27 апреля 2010

кто-нибудь знает, что мне нужно сделать, чтобы сохранить мои TableView iVars, в то же время выдвигая подробное представление в стек навигации?

У меня есть массив и дата, определенные как iVars, и массив сохраняется, а дата - нет. Я проверил, может ли где-то спрятан авто-релиз, но очевидных нет.

Свойства определены как неатомные, сохраняются.

Я использую собственные методы категории NSDate для определения конкретных дат на этапах. Они используют NSDateComponents, NSRange и NSCalendar, например:

- (NSDate *)lastDayOfMonth: {
 NSCalendar *tmpCal = [NSCalendar currentCalendar];
 NSDateComponents *tmpDateComponents = [tmpCal components:NSYearCalendarUnit | NSMonthCalendarUnit | NSEraCalendarUnit | NSWeekCalendarUnit | NSWeekdayOrdinalCalendarUnit fromDate:self];
 NSRange tmpRange = [tmpCal rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[tmpCal dateFromComponents:tmpDateComponents]];

 [tmpDateComponents setDay:tmpRange.length];
 [tmpDateComponents setHour:23];
 [tmpDateComponents setMinute:59];
 [tmpDateComponents setSecond:59];
 return [[NSCalendar currentCalendar] dateFromComponents:tmpDateComponents];
}

Могут ли они быть причиной?

Ответы [ 3 ]

0 голосов
/ 27 апреля 2010
  • Вы @синтезируете аксессор даты или пишете сами? Если вы написали сеттер самостоятельно, убедитесь, что он вызывает retain (иногда я забыл это сделать)
  • Имеет ли контроллер push-представления доступ к нему и его случайное освобождение?
0 голосов
/ 29 апреля 2010

Я думаю, что нашел его, когда я вызываю подпредставление, я использую метод для создания представления и передачи ему объекта данных.

Если я правильно понял, параметр высвобождается подпредставлением, когда он возвращается к основной процедуре, и поэтому даты теряются. Сохранение объекта в вызове subview делает эту работу.

0 голосов
/ 27 апреля 2010

dateFromComponents: возвращает автоматически выпущенную NSDate.

Ваша дата ivar должна быть сохранена сеттером. Вы объявили это так и используете сеттер?

@property (nonatomic, retain) NSDate* myDate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...