-2

我想在我们的 iOS 应用程序中使用 plist 文件。当我浏览了一些文章时,我无法收集所需的信息。请帮助我。

4

3 回答 3

1

如果问题是关于从属性列表中读取和写入数据,相关文档是[属性列表编程指南]。(https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/ReadWritePlistData /ReadWritePlistData.html#//apple_ref/doc/uid/10000048i-CH8-SW3 )

该摘录应该可以帮助您:

使用核心基础函数读取和写入属性列表数据

将属性列表数据写入文件系统有两种主要方法:

如果属性列表的根对象是 NSDictionary 或 NSArray 对象(几乎总是如此),您可以调用这些类的 writeToFile:atomically: 或 writeToURL:atomically: 方法,传入根对象。这些方法将属性列表对象的图形保存为 XML 属性列表,然后再将其写为文件或 URL 资源。要将属性列表数据读回程序,请通过调用 initWithContentsOfFile: 和 initWithContentsOfURL: 方法或相应的类工厂方法(例如,dictionaryWithContentsOfURL:)来初始化分配的集合对象。

为了扩展最后一点,请考虑这个例子。您有一个 XML 属性列表,其根对象是一个 NSArray 对象,其中包含许多 NSDictionary 对象。如果您使用此调用加载该属性列表:

NSArray * a = [NSArray arrayWithContentsOfFile:xmlFile];

a 是一个不可变数组,每个元素中都有不可变的字典。每个字典中的每个键和每个值也是不可变的。

如果您使用此调用加载属性列表:

NSMutableArray * ma = [NSMutableArray arrayWithContentsOfFile:xmlFile];

ma 是一个可变数组,每个元素中都有不可变的字典。每个字典中的每个键和每个值都是不可变的。

如果您需要对属性列表中对象的可变性进行更细粒度的控制,请使用 propertyListFromData:mutabilityOption:format:errorDescription: 类方法,其第二个参数允许您在聚合属性列表的各个级别指定对象的可变性. 您可以指定所有对象都是不可变的(NSPropertyListImmutable),只有容器(数组和字典)对象是可变的(NSPropertyListMutableContainers),或者所有对象都是可变的(NSPropertyListMutableContainersAndLeaves)。

例如,您可以编写如下代码:

NSMutableArray *dma = (NSMutableArray *)[NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&error];

此调用生成一个可变数组,每个元素中都有可变字典。每个字典中的每个键和每个值本身也是可变的。

于 2013-01-31T10:14:24.997 回答
1

你可以这样使用:-

NSString *path = [[NSBundle mainBundle] pathForResource:@"dataList" ofType:@"plist"];
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithContentsOfFile:path];

此数组可用于填充 tableview 或任何其他目的。

于 2013-01-31T10:09:33.957 回答
0

获取数据形式非常简单,plist例如,

self.YorArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"YourplistName" ofType:@"plist"]];
于 2013-01-31T10:26:40.167 回答