我在此图像中创建了一个jobs.plist
文件,该文件保存在我的xCode项目的Supporting Files目录中
基于this SO answer,在我的viewController的viewDidLoad方法中,我将此代码添加到i)读取文件ii)将文件内容存储在数组中(self.jobs),然后iii )从数组中获取随机作业
NSString *path = [[NSBundle mainBundle] pathForResource:@"jobs" ofType:@"plist"];
NSLog(@"path %@", path);
self.jobs = [NSArray arrayWithContentsOfFile:path];
NSLog(@"jobs %lu", [self.jobs count]);
NSUInteger index = arc4random() % [self.jobs count];
NSLog(@"random job %@", [self.jobs objectAtIndex: index]);
但是,当我运行代码时,第二个日志语句显示有0
个作业(不是我预期的6个),并且应用程序在第二行到最后一行冻结时出现错误
Thread 1:EXC_ARITHMETIC(code=exc_1386, div, subcode=0x)
由于在plist文件中读取代码是相同的,我假设我的plist犯了错误。你能告诉我我做错了吗?
答案 0 :(得分:2)
问题在于您尝试将plist作为数组读取,但它被定义为字典。
更新你的plist,使root的类型为array
。