2010-04-21 21 views
1

저는 iPhone 개발에 익숙하지 않습니다. 날짜를 원하는 형식으로 변환하고 대리자에게 설정하고 다른보기에서 값을 가져옵니다. 대리인의 값을 가져 오려고하면 세션이 다시 시작됩니다. 집합 위임자에서 형식화 된 날짜가 아니라 원래 날짜를 설정하면 다른보기에서 값을 가져올 수 있습니다. 또한 정적 문자열 값을 제공하면 정적 문자열 값을 다시 사용할 수 있습니다. 문자열 인 형식화 된 날짜 만 설정되고 세션이 다시 시작됩니다. 내가 인쇄 포맷 된 날짜의 값을 선택하면이 out.Here이대표자가 제대로 작동하지 않습니다.

NSString *dateval=[[stories objectAtIndex: storyIndex] objectForKey:@"date"]; 

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init]; 

[inputFormatter setDateFormat:@"EEE, MMM dd, yyyy"]; 

NSDate *inputDate = [inputFormatter dateFromString:dateval]; 

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; 

[outputFormatter setDateFormat:@"MMMM dd"]; 

NSString *outputDate = [outputFormatter stringFromDate:inputDate]; 

AppDelegate *delegate=(AppDelegate *)[[UIApplication sharedApplication]delegate]; 

[delegate setCurrentDates:outputDate]; 

편집 날짜 변환을위한 내 코드입니다 도와 only.Please 올바른 형식의 날짜를 인쇄합니다 이 콘솔에 표시됩니다

내부보기가로드되었습니다.

[세션 시작일 : 2010-04-21 19:12:53 +0530] GNU gdb 6.3.50-20050815 (Apple 버전 gdb-967) (Tue Jul 14 02:11:58 UTC 2009) Copyright 2004 Free Software Foundation, Inc. GDB는 자유 소프트웨어로 t가 적용됩니다. 그는 GNU 일반 공중 사용 허가서이며 귀하는 입니다. 특정 조건 하에서 그것을 변경하거나 배포 할 수 있습니다. "show copying"를 입력하여 조건을 확인하십시오. GDB에 대한 어떠한 보증도 없습니다. 자세한 내용은 "보증 표시"를 입력하십시오. 이 GDB 적용 부하가-규칙 .sharedlibrary 모든 이

- (void)viewDidLoad { 
NSLog(@"inside view did load"); 
AppDelegate *delegate=(AppDelegate *)[[UIApplication sharedApplication]delegate]; 
NSString *titleValue=[delegate getCurrentDates]; 
self.navigationItem.title =titleValue ; 
} 

경우 get이 작동하지 않는 다른 관점에서

4216 (GDB)을 처리하기 위해 연결 "I386 - 사과 - 다윈"로 구성되었다 내가 정적 문자열이나 "dateval"을 주면 제대로 작동합니다.

감사합니다.

+0

"세션이 다시 시작됩니다"라는 말은 앱이 다운된다는 뜻입니까? 어떤 오류가 발생합니까? 값을 가져 오는 다른보기에 코드를 표시하십시오. – DyingCactus

답변

2

outputDate이 유지되지 않는 것처럼 보이므로 NSAutoreleasePool 때문에 이벤트 루프가 끝날 때 값이 손실됩니다.

당신은 대리인에 그런 일에 출시를 피하기 위해 outputDate을 유지해야합니다

- (void)setCurrentDates:(NSString *)value { 
    [value retain]; // <- Retain new value 
    [date release]; // <- Release old value; 
    date = value; 
} 

가장 좋은 해결책은 retain 속성 대리자에서 선언 된 속성을 가지고하는 것입니다.

+0

올바른 유지/릴리스 순서를 갖도록 설정 코드를 수정했습니다. –

+0

나는 이전 코드 자체에서 무엇을 말하려고하는지 이해할 수있었습니다. 고마워 완벽하게 작동합니다. – Warrior

관련 문제