从plist中拉出NSDates时出错

时间:2011-12-13 12:12:40

标签: iphone objective-c ios cocoa-touch

我正试图从我的plist中提取NSDates,以便创建Datecomponents,但尝试这样做会给我带来问题。

这是我正在使用的一些代码:

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,但是我试图从plist中得到的eventDateComp给出了一个错误。

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那里获得NSDates,但我尝试了一些不同的东西,但不知道如何正确地做到这一点。 非常感谢帮助。

1 个答案:

答案 0 :(得分: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];