Objective c 从plist读取多数组
我无法从下面的列表中找到8项。 我有一个plist“settings.plist”。现在我想问的不是vragen->categoryObjective c 从plist读取多数组,objective-c,cocoa-touch,plist,Objective C,Cocoa Touch,Plist,我无法从下面的列表中找到8项。 我有一个plist“settings.plist”。现在我想问的不是vragen->category(self.catagorie-1)->问题。这8个项目。但是数组保持为空 我做错了什么 代码: Plist文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTD
(self.catagorie-1)
->问题。这8个项目。但是数组保持为空
我做错了什么
代码:
Plist文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>vragen</key>
<array>
<array> <--catagorydata
<array> <-- questiondata
<string>vraag</string>
<string>A</string>
<string>B</string>
<string>C</string>
<string>D</string>
<string>1</string>
<string>standaard</string>
<string></string>
</array>
<array>
<string>vraag2</string>
<string>A</string>
<string>B</string>
<string>C</string>
<string>D</string>
<string>1</string>
<string>afbeelding</string>
<string>afbeelding.jpg</string>
</array>
</array>
</array>
<key>firstBoot</key>
<true/>
<key>regelAtRuntime</key>
<true/>
</dict>
</plist>
弗拉根
只是快速阅读,但看起来您有一个“categoryData”项数组,其中包含一个questionData项数组;问题数据项是字符串
NSArray *vragen = [instellingen objectForKey:@"vragen"]; // count = 1
NSArray *cata = [vragen objectAtIndex: (self.catagorie-1)]; // count = 2
NSString *question = [cata objectAtIndex: 0];
建议您添加一些断点并查看数据。或者,NSLog(@“数据=%@”,cata);等等。首先是这一行
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"instellingen.plist"]; ?
应该是
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"settings.plist"];
我还必须从字典中删除以下内容:
<--catagorydata
<-- questiondata
根据.plist文件,哪个是正确的
所以你的问题在前4行。确保您的文件位于Documents目录中(使用类似于以下代码的代码查看出了什么问题)
我复制了项目文件夹中的文件(因为我使用了模拟器),并使用了以下代码,一切正常
NSBundle* b=[NSBundle mainBundle];
NSURL* path1=[b URLForResource:@"settings" withExtension:@"plist"];
NSMutableDictionary *instellingen = [NSMutableDictionary dictionaryWithContentsOfURL:path1];
NSLog(@"size of dict %d",[instellingen count]);
NSArray *vragen = [instellingen objectForKey:@"vragen"];
NSArray *cata = [vragen objectAtIndex: 0];
NSArray *question = [cata objectAtIndex: 0];
NSLog(@"count: %i", [question count]);
是得到nil(instellingen==nil)的可变字典吗?当我计算根时,结果是2。当我想深入研究时,结果是0。是否应该交换[vragen objectAtIndex:self.catagorie-1]
和[cata objectAtIndex:0]
?(当然还有必要的修改…)谢谢,主要问题是文档文件夹中的plist已过时。我不得不删除应用程序并重新安装。
tester[69637:c07] size of dict 3
tester[69637:c07] count: 8
NSLog(@"Path : %@",path);
NSBundle* b=[NSBundle mainBundle];
NSURL* path1=[b URLForResource:@"settings" withExtension:@"plist"];
NSMutableDictionary *instellingen = [NSMutableDictionary dictionaryWithContentsOfURL:path1];
NSLog(@"size of dict %d",[instellingen count]);
NSArray *vragen = [instellingen objectForKey:@"vragen"];
NSArray *cata = [vragen objectAtIndex: 0];
NSArray *question = [cata objectAtIndex: 0];
NSLog(@"count: %i", [question count]);