2011-12-13 26 views
1

我想從我的plist拉NSDates,爲了創建Datecomponents,但試圖這樣做給我的問題。從plist拉NSDates錯誤

這是一些我使用的代碼:

self.Array = [NSMutableArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"matches" ofType:@"plist"]]; 

NSDateComponents *todayComp = [[NSCalendar currentCalendar] components:NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]]; 
NSDateComponents *eventDateComp = [[NSCalendar currentCalendar] components:NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[Array valueForKey:@"date"]]; 

我得到todayComp的正確,但eventDateComp的,這我試圖讓FRM的plist中,給出了一個錯誤。

plist中是字典的數組,像這樣:

<array> 
<dict> 
    <key>date</key> 
    <date>2011-12-13T00:00:00Z</date> 
    <key>titel</key> 
    <string>Tilburg - Oss</string> 
</dict> 
<dict> 
    <key>date</key> 
    <date>2011-12-13T00:00:00Z</date> 
    <key>titel</key> 
    <string>Amsterdam - Roosendaal</string> 
</dict> 
</array> 

的NSLog說,這樣的事情...

-[__NSArrayI timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x6a8d050 

...這可能認爲,我沒有得到來自plist的NSD以正確的方式發佈,但我嘗試了一些不同的東西,但不知道如何正確地做。 非常感謝幫助。

回答

1
[Array valueForKey:@"date"] 

您在NSArray上使用valueforKey:方法。 1)使用objectAtIndex:從數組中獲取對象; 2)Difference between objectForKey and valueForKey?

NSDate *eventDate = [[Array objectAtIndex:0] objectForKey:@"date"]; 
NSDateComponents *eventDateComp = [[NSCalendar currentCalendar] components:NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:eventDate]; 
+0

做到了。謝謝! – user1048042

+0

試圖執行代碼並工作,但它只從第一個字典中獲取日期(由於objectAtIndex爲0)。我怎樣才能通過所有的字典,從而得到所有的日期? – user1048042

+0

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Collections/Articles/Enumerators.html#//apple_ref/doc/uid/20000135-BBCFABCB – Kreiri