2010-04-27 3 views
0

세부 정보보기를 탐색 스택에 밀어 넣는 동안 TableView iVars를 유지하려면 어떻게해야하는지 알면 누구나 알 수 있습니까?DetailsView에서 돌아올 때 TableView - iVar 재설정

나는 배열과 날짜가 iVars로 정의되어 있고 배열은 유지되지만 날짜는 유지되지 않습니다. 나는 autorelease가 어딘가에 숨겨져 있을지도 모르지만 거기에는 명백한 것들이 없는지 점검했다.

속성은 비 원자형, 보유로 정의됩니다.

사용자 지정 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

내가 생각하기에 하위 뷰를 호출하면보기를 생성하고 데이터 개체를 전달하는 메서드를 사용합니다.

내가 올바르게 파악하면 주 루틴으로 돌아갈 때 하위 뷰가 매개 변수를 릴리스하므로 날짜가 손실됩니다. 하위 뷰 호출에서 Object를 유지하면 작업이 수행됩니다.

1

dateFromComponents : 자동 릴리스 된 NSDate를 반환합니다.

귀하의 날짜 ivar는 setter에 의해 유지되어야합니다. 이것을 이렇게 선언하고 세터를 사용 했습니까?

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

예, 속성은 이렇게 선언됩니다. 나는 또한 반환 된 날짜에 유지를 호출하지만, 내가 밀어 넣은 세부 뷰에서 돌아 오자마자 객체가 빠져 나왔다. – iFloh

0
  • 당신은 날짜 접근을 @synthesize, 또는 그것을 직접 작성합니까? setter를 직접 작성한 경우 retain (항상 잊어 버린 것을 잊어 버렸습니다)을 호출했는지 확인하십시오.
  • 푸시 된보기 컨트롤러가 실수로 놓아 둡니까?
관련 문제