Iphone TableView-从详细信息视图返回时iVar重置

Iphone TableView-从详细信息视图返回时iVar重置,iphone,objective-c,xcode,Iphone,Objective C,Xcode,有人知道我需要做什么来保留TableView iVars,同时将详细信息视图推到导航堆栈上吗 我有一个数组和一个定义为iVars的日期,数组被保留,而日期不被保留。我检查了是否有一个自动释放隐藏在某处,但没有明显的 这些性质定义为非原子,保留 我使用自定义的NSDate分类方法来确定各个阶段的特定日期。它们使用NSDATE组件、NSRange和NSCalendar,例如: - (NSDate *)lastDayOfMonth: { NSCalendar *tmpCal = [NSCalenda

有人知道我需要做什么来保留TableView iVars,同时将详细信息视图推到导航堆栈上吗

我有一个数组和一个定义为iVars的日期,数组被保留,而日期不被保留。我检查了是否有一个自动释放隐藏在某处,但没有明显的

这些性质定义为非原子,保留

我使用自定义的NSDate分类方法来确定各个阶段的特定日期。它们使用NSDATE组件、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];
}

它们可能是原因吗?

dateFromComponents:返回自动删除的NSDate

您的日期ivar应由设定者保留。你是这样声明的并使用setter吗

@property (nonatomic, retain) NSDate* myDate;
  • 你是@合成日期访问器,还是自己编写?如果是您自己编写的setter,请确保它调用retain(有时我忘了这么做)
  • 推送的视图控制器是否可以访问它,并意外释放它

我想我找到了它,当我调用子视图时,我使用一种方法来生成视图并将数据对象传递给它


如果我没有弄错的话,当返回到主例程时,子视图会释放参数,这就是日期丢失的原因。子视图调用中对象上的retain执行此任务。

是,属性是这样声明的。我也在返回的日期调用了retain,但是一旦我从pushdetails视图返回,我就会遇到正在释放的对象。。。