我有一个plist,是这样的:
<dict>
<key>11231654</key>
<array>
<string>hello</string>
<string>goodbye</string>
</array>
<key>78978976</key>
<array>
<string>ok</string>
<string>cancel</string>
</array>
我使用下面的代码加载plist:
NSString *path = [[NSBundle mainBundle] pathForResource:
@"data" ofType:@"plist"];
// Build the array from the plist
NSMutableArray *array3 = [[NSMutableArray alloc] initWithContentsOfFile:path]; 如何访问plist中的每个元素?我想在plist中搜索一个匹配的键,然后用它的子键进行搜索。我该怎么做呢?有什么建议吗?
预想一下!
发布于 2010-08-16 22:26:38
数组被编入索引。如果要访问NSArray中的第一个对象,请执行以下操作:
id someObject = [array objectAtIndex:0];如果你知道对象类型,你可以这样做:
NSString *myString = [array objectAtIndex:0];EDIT:您需要对已有的数据使用NSDictionary -请注意,它以<dict>标记开头,而不是<array>标记(尽管有数组作为值)。
NSString *path = [[NSBundle mainBundle] pathForResource:
@"data" ofType:@"plist"];
// Build the array from the plist
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSArray *value = [dict valueForKey:@"11231654"];现在您可以对数组做任何您想做的事情。
发布于 2011-02-07 00:32:14
Here是一个讨论链接,它提供了一个非常好的示例,说明如何访问您的数据,以及在某些情况下哪种类型的存储方案会更有好处。@Jeff Kelley的解决方案恰到好处,我只是认为这个问题会增加额外的资源。希望这能有所帮助!
发布于 2013-08-14 16:04:14
这就是你需要创建plist的方法

将root设置为数组而不是字典,这将按顺序给出结果。使用下面几行代码,您可以获取完整的plist。
NSString *pathOfPlist = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
arrPlistValue = [[NSArray alloc]initWithContentsOfFile:path];
NSLog(@"Plist Value : %@",arrPlistValue);在此之后,您可以使用以下代码获取任何特定内容:
NSString *strName = [[arrTempValue objectAtIndex:0] objectForKey:@"name"];
NSString *strImage = [[arrTempValue objectAtIndex:0] objectForKey:@"image"];
int idValue = [[[arrTempValue objectAtIndex:0] objectForKey:@"id"] integerValue];
BOOL isSubCat = [[[arrTempValue objectAtIndex:0] objectForKey:@"isSubCategory"] boolValue];使用此代码,您可以从plist中获取整数、字符串和布尔值。
https://stackoverflow.com/questions/3494033
复制相似问题