2012-10-13 60 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"; 

它工作正常。

我從鍵 - 值對的陣列讀它,所以我做:

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長度]:無法識別的選擇器發送到實例0x89a8170'' – DAS

+0

...嗯,似乎是合法的。如果不動態設置字符串,則工作。 – 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文件中的數據結構。