【发布时间】:2023-03-17 09:24:01
【问题描述】:
我正在尝试学习如何从 plist 中读取...我的例子很简单。我真的只想读一个整数,尽管对于更一般的数据情况,我也希望得到建议。 plist 有 Item0 - 数组,并且在 Item 0 下有一个数字。这就是我试图阅读的方式。
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:
<?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>
【问题讨论】:
-
原样......计数为零,日志中的数组为零。
-
如果数组打印 nil,要么是 url 错误,要么是 plist 格式错误。在
NSArray alloc行之前的单独行(例如NSURL *url = [NSURL URLWithString...)中创建NSURL,并查看url是否为nil。如果 url 没问题,请发布 plist xml。此外,NSArrays 包含对象,因此count赋值是错误的(int 是原始类型)。如果第一项是整数,它将是一个 NSNumber 对象,所以你需要做count = [(NSNumber *)[plistArray objectAtIndex:0] intValue];。 -
ttp://www.apple.com/DTDs/PropertyList-1.0.dtd" rel="nofollow" target="_blank">apple.com/DTDs/PropertyList-1.0.dtd">
Item0 12 -
网址打印得很好......所以就像你说的那样,它一定与我处理 plist 的方式有关。我把它贴在上面......它看起来有点乱,但它并不多。感谢您的帮助。
标签: objective-c nsarray plist