首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从plist读取

从plist读取
EN

Stack Overflow用户
提问于 2011-11-12 10:12:12
回答 3查看 1K关注 0票数 0

我在试着学习如何从拼音列表中读出...我的是一个简单的例子。我真的只想读取一个整数,尽管对于更一般的数据情况,我也希望得到建议。plist有Item0数组,项0下面有一个数字。这就是我试图理解这篇文章的方式。

代码语言:javascript
复制
plistArray = [[NSArray alloc] initWithContentsOfURL:[NSURL      URLWithString:@"http://www.website.com/count.plist"]];


//count = [[plistArray objectAtIndex:0]];
count=(int)[plistArray objectAtIndex:0];
NSLog(@"array %@\n",plistArray);

NSLog(@"count %i\n",count);

这是plist xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "apple.com/DTDs/PropertyList-1.0.dtd">
;<plist version="1.0"> 
    <dict> 
        <key>Item0</key> 
        <array> 
            <integer>12</integer> 
        </array> 
    </dict> 
</plist>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-12 23:13:36

plist有两个问题:

  • <plist>标记前面的;不应该在那里
  • 您试图在代码中读取的数组在plist中的字典内(该数组不是最外层的元素)

首先,删除分号。

接下来,要么更新plist以仅包含<array>元素,要么更新代码以首先读取<dict>,然后从字典中获取NSArray

代码语言:javascript
复制
NSDictionary *plistDict = [NSDictionary dictionaryWithContentsOfURL:url];

NSArray *plistArray = [plistDict objectForKey:@"Item0"];

int count = [(NSNumber *)[plistArray objectAtIndex:0] intValue];
票数 1
EN

Stack Overflow用户

发布于 2011-11-12 23:11:46

你的plist有一个字典作为根对象,而不是一个数组。您应该使用URL的内容创建一个NSDictionary,它将包含一个数组(用于关键字Item0),此数组的第一个对象将是包含整数的NSNumber。

票数 1
EN

Stack Overflow用户

发布于 2011-11-12 23:12:02

我不确定您是如何创建plist的,但我认为您保存的是NSDictionary而不是NSArray。

plist中的数据结构表明,根对象是一个字典(dict),它包含一个键/值对。关键字是"Item0",值是我认为您要查找的NSArray。

试试这个:

代码语言:javascript
复制
plistDict = [[NSDictionary alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.website.com/count.plist"]];
NSArray * plistArray = [plistDict objectForKey:@"Item0"];
NSLog(@"array %@", plistArray);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8102036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档