ram*_*013 25 objective-c ios swift
我试图读取包含数组的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>key1</key>
<string>value1</string>
<key>key2</key>
<string>value2</string>
<key>keyarray1</key>
<array>
<string>keyitem1</string>
<string>keyitem2</string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
当我尝试读取valueForKey:@"keyarray1"时,我得到null值.我试着读作一个字符串和数组螺母没用.
我的守则
NSDictionary * values=[[NSDictionary alloc] initWithContentsOfFile:@"values.plist"];
NSArray *arrayValues=[[NSArray alloc] initWithArray:[values valueForKey:@"keyarray1"]];
Run Code Online (Sandbox Code Playgroud)
rpt*_*thi 67
首先检查你的plist看起来像:

现在写下您访问plist的以下行
Objective-C的:
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Values" ofType:@"plist"]];
NSArray *array = [dictionary objectForKey:@"keyarray1"];
NSLog(@"dictionary = %@ \narray = %@", dictionary, array);
Run Code Online (Sandbox Code Playgroud)
这是我工作窗口的完整屏幕截图(带日志输出):

迅速:
let dictionary = NSDictionary(contentsOfFile: Bundle.main.pathForResource("Values", ofType: "plist")!);
let array = dictionary?["arrayKey"] as! NSArray
print("dictionary=", dictionary, "\narray =", array)
Run Code Online (Sandbox Code Playgroud)
我知道这个问题太旧了,我只想为最近遇到此问题的人添加更多信息.
在我的例子中,我创建了一个plist作为Array(plist默认为Dictionary,键为"Root").

那么xml看起来像这样:

在我的视图控制器上,我直接初始化数组而不是初始化Dictionary然后获取键"Root"的对象:

注意:我只想添加此信息,因为我只看到初始化Dictionary然后获取键的对象.希望它会帮助你们.
| 归档时间: |
|
| 查看次数: |
38341 次 |
| 最近记录: |