iPhone PList和NSDate问题

iPhone PList和NSDate问题,iphone,objective-c,ios4,plist,Iphone,Objective C,Ios4,Plist,我正在做: NSString *path = [[self class] pathForDocumentWithName:@"Alarms.plist"]; NSArray *alarmDicts = [NSMutableArray arrayWithContentsOfFile:path]; if (alarmDicts == nil) { NSLog(@"MER. Unable to read plist file: %@", path); path = [[NSBundl

我正在做:

NSString *path = [[self class] pathForDocumentWithName:@"Alarms.plist"];
NSArray *alarmDicts = [NSMutableArray arrayWithContentsOfFile:path];

if (alarmDicts == nil)
{
    NSLog(@"MER. Unable to read plist file: %@", path);
    path = [[NSBundle mainBundle] pathForResource:@"Alarms"
                                               ofType:@"plist"];
    alarmDicts = [NSMutableArray arrayWithContentsOfFile:path];
}

_displayedObjects = [[NSMutableArray alloc]
                         initWithCapacity:[alarmDicts count]];

for (NSDictionary *currDict in alarmDicts)
{
    Alarm *alarm = [[Alarm alloc] initWithDictionary:currDict];
    [_displayedObjects addObject:alarm];
}
pathForDocumentWithName只是一个助手方法,假设它可以工作(确实可以)。我将plist的所有值添加到一个对象中,并将其存储在一个数组中。现在如果我这样做:

NSUInteger index = [indexPath row];
id alarm = [[self displayedObjects] objectAtIndex:index];

NSString *title = [alarm title];
[[cell detailTextLabel] setText:title];
它工作得非常好。但在尝试格式化plist文件中的NSDate类型时(列为“datetime”)

对于alarmDicts,它抛出为nil的NSLog,并为字符串返回nil。我没有主意了,我已经试了几个小时来解决这个问题。有人有什么想法吗


另外,如果我打印出datetime的描述,它也能很好地工作。当我尝试在其上使用NSDateFormatter时,只有零和错误出现。

大量猜测,但您确定属性列表中的日期被作为NSDate对象读入吗?如果我是你,我会检查你的NSDate对象的类型,例如

NSLog(@"%@", [[alarm datetime] class]);
我怀疑它们是作为NSStrings加载的,NSDateFormatter将拒绝处理这些字符串,但它们仍然会正确记录


无关评论:我确信这只是一个复制粘贴错误,但您在第一段代码的底部泄漏了“报警”对象。

是的,这只是一段代码。你是对的。虽然它说它是一个NSDate对象,但我重新创建了.plist文件,现在它可以工作了。谢谢你的意见!似乎我需要一双新的眼睛。
NSLog(@"%@", [[alarm datetime] class]);