2012-10-13 2 views
0
2012-10-12 19:29:43 

Aquivalent NSDateFormatter는 :간단한 NSDateFormatter/문자열 구문 분석

[_dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

는 예외가 발생합니다 ... 왜?

감사합니다.

참조 :http://waracle.net/mobile/iphone-nsdateformatter-date-formatting-table/

UPDATE :

문제는 문자열이 될 것으로 보인다. 문자열을 하드 코드하면 :

NSString * string = @"2012-10-12 19:29:43"; 

잘 작동합니다. I는 키 - 값 쌍의 어레이로부터 읽어

그래서이 수행

NSString * string = [NSString stringWithFormat:@"%@", (NSString *)[[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"]]; 

콘솔 출력 :

1 :

2012-10-12 10:16:49 

2 :

("2012-10-12 10:16:49") 

문제는 배열의 문자열 구문 분석과 관련이 있다고 생각합니다.

는 업데이트 2 :

[[[NSArray readFromPlistFile:@"latestchangesdates"] objectAtIndex:0] valueForKey:@"newsLastEdited"]] 

는 ... 마지막으로 그것을했다.

+0

와트가 예외입니까? – IronManGill

+0

무엇을 의미합니까? '스레드 6 : 시그널 SIGABRT'?''- [__ NSArrayI length] : 인스턴스로 전송 된 인식 할 수없는 선택자 0x89a8170 '' – DAS

+0

... hm, 합법적 인 것 같습니다. 문자열을 동적으로 설정하지 않으면 작동합니다. – DAS

답변

0
[[[NSArray readFromPlistFile:@"latestchangesdates"] objectAtIndex:0] valueForKey:@"newsLastEdited"]] 

... 마침내했다.

0

Plist 파일의 newsLastEdited 키가 실제로는 문자열이 아닌 배열을 반환하고있는 것처럼 보입니다.

라인 :

NSString *string = [NSString stringWithFormat:@"%@", (NSString *)[[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"]]; 

단순히 [[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"]에서 NSString에 반환 값을 캐스팅입니다. 이것은 자동적으로 반환 값을 문자열로 만들지 않습니다. 내가 올바른 해요 경우

NSString *string = [[[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"] objectAtIndex:0]; 

는, 이것은 PLIST newsLastEdited 키에서 반환 된 배열의 첫 번째 요소를 취할 것입니다 : 당신이 대신 다음을 사용하면 어떻게됩니까

. 이것이 작동하면 Plist 파일에 저장된 데이터 구조를 이해하는 데 약간의 시간이 걸릴 것입니다.