无法将 plist 加载到 NSArray

Posted

技术标签:

【中文标题】无法将 plist 加载到 NSArray【英文标题】:Unable to load plist into NSArray 【发布时间】:2012-01-03 19:19:30 【问题描述】:

我正在尝试将以下 plist 加载到 NSArray 中:

这是我用来加载数据的代码:

// Load the data from the plist file
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"MyData" ofType:@"plist"];
NSArray *myArray = [[NSArray alloc] initWithContentsOfFile:filepath];

但是,当我在加载数据后放置断点时,我注意到数组是空的。请问有人可以帮我理解发生了什么问题吗?

【问题讨论】:

你确定文件名和路径绝对正确吗? 不确定它是否会有所不同,但是 plist 存储在与加载它的类文件不同的文件夹中。 【参考方案1】:

您可以尝试将其加载到 NSDictionary 中并在其中询问 [ objectForKey:@"Root"] 吗?

据我所知,属性列表是键/值映射,而您的数组只是这些值之一。

【讨论】:

【参考方案2】:

您的 plist 文件有一个包含数组的字典。试试这个

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:filePath];
NSArray *array = [[NSArray alloc]initWithArray:[dict objectForKey:@"Root"]];

【讨论】:

【参考方案3】:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"name.plist"];
NSArray *plistData = [NSArray arrayWithContentsOfFile:finalPath];

【讨论】:

以上是关于无法将 plist 加载到 NSArray的主要内容,如果未能解决你的问题,请参考以下文章

.plist 数据无法从 NSArray 加载到 NSDictionary

如何将xml加载到plist

Xcode 11 Swift 5 - 无法安装应用程序(无法加载 info.plist 文件)

将 plist 加载到核心数据中

我无法从 plist 键值中解包值

如何将图像从 plist 加载到 UITableView?