无法将 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