2010-04-27 19 views
0

任何人都知道我需要做什麼來保留我的TableView iVars,同時將詳細信息視圖導入導航堆棧?TableView - 從詳情視圖返回時重置iVar

我有一個數組和定義爲iVars的日期和數組保留,而日期不是。我檢查了是否可能有一個autorelease隱藏在某處,但沒有明顯的。

該屬性被定義爲nonatomic,保留。

我使用自定義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]; 
} 

可能它們在某種程度上是什麼原因?

回答

0

我想我發現它,當我打電話的子視圖中,我使用的方法來生成視圖,並將它傳遞的數據對象。

如果我認爲它是正確的,當它返回到主例程時,子視圖釋放該參數,這就是日期丟失的原因。子視圖調用中的對象上的保留完成作業。

1

dateFromComponents:返回一個自動釋放的NSDate。

你的日期伊娃應該由制定者保留。你是否聲明過這樣並使用setter?

@property (nonatomic, retain) NSDate* myDate; 
+0

是的,該屬性是這樣聲明的。我還會在返回的日期中調用保留,但只要從推送的詳細信息視圖返回,我就會碰到釋放的對象... – iFloh 2010-04-27 14:32:15

0
  • 你@synthesize日期訪問,或者你自己寫的?如果你自己編寫了setter,請確保它的調用保持不變(我有時忘記這麼做)
  • 推送的視圖控制器是否可以訪問它,並意外釋放它?
相關問題