对于样本Plist显示代码我看起来很高和很低,似乎找不到任何我想做的事情。我知道这不会太难,但我是Plists的新手。
我在Plist中有以下数组,我似乎无法获得显示信息的正确命令。我在Plist设置中做错了吗?它编译得很好但没有数据进入iPhone模拟器。
显示信息的正常方式是什么?
我有条件设置:
如果条件一
然后显示“+ 0 + 1”
否则
显示“+ 0 + 2”
*我希望它显示的是:
*“这是一个”
*“这是两个”
*“这是三个”
*否则显示
*“555-555-1234”
*“555-555-0000”
*“555-555-5555”
// read property list into memory as an NSData object
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSString *errorDesc = nil;
NSPropertyListFormat format;
// convert static property list into dictionary object
NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
// assign values
self.item1 = [temp objectForKey:@"name1"];
self.item2 = [NSMutableArray arrayWithArray:[temp objectForKey:@"name2"]];
// display values
bigCheese.text = disp1;
numberZero.text = [disp2 objectAtIndex:0];
numberOne.text = [disp2 objectAtIndex:1];
numberTwo.text = [disp2 objectAtIndex:2];
答案 0 :(得分:0)
尝试使用:
NSString *file = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:file];
NSArray *array = [dict objectForKey:@"Array"]; NSLog(@"%@", array);
这很简单,所以做错事的机会就少了。
答案 1 :(得分:0)
获得字典后,获取该字典的所有值。在您的情况下,从temp字典中获取所有值。它应该返回一个包含两个数组的数组。
NSArray * valueArray = [temp allValues];
现在您有两个阵列,如果您想访问“555-555-5555”,请执行以下操作:
[[valuesArray objectAtIndex:1] objectAtIndex:2];
或者如果你确定“name1”和“name2”是你词典的键,你可以这样访问:
[[temp objectForKey:@“name1”] objectAtIndex:2];
获得此信息后,您可以决定如何显示该信息。我建议你去看看,看看是否先创建了字典和数组对象。不确定您发布的示例代码中的disp1和disp2是什么..