使用iOS SDK在运行时创建plist



我是iPhone开发新手。我想知道是否有任何样本Objective-C代码在运行时通过从web服务器获取数据来创建plist,我想知道数据的格式应该是什么,以便我可以轻松地在运行时创建plist。

使用NSDictionary:

非常简单
#define DOCUMENTS_PATH [NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES) objectAtIndex:0]
NSDictionary *myDictionary = [self parseWebResult];
// note that myDictionary must only contain values of string, 
// int, bool, array (once again containing only the same types), 
// and other primitive types (I believe NSDates are valid too).
[myDictionary writeToFile:[DOCUMENTS_PATH stringByAppendingPathComponent:@"myDict.plist"] atomically:YES];
// reading in the dictionary
myDictionary = [NSDictionary dictionaryWithContentsOfFile:[DOCUMENTS_PATH stringByAppendingPathComponent:@"myDict.plist"]];

Plist文件主要用于Mac OS X以键/值方式存储序列化的对象。有多种类型的属性列表文件;ASCII, XML和二进制。因此,在您的示例中,服务器应该以xml格式发送数据。从服务器接收数据后,您可以在运行时生成plist。您可以使用下面的代码将数据写入.plist文件。

- (void)writeToPlist{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"WebData.plist"];
NSArray *dataToSave = [dataToSave writeToFile:filePath atomically:YES];
}

请参考这个和这些链接服务器端也link1 link2 link3 link4。

// Get the full path of file in NSDocuments 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"MyData.plist"];
// Save data to file
NSArray *dataToSave = /* put data in it */;
[dataToSave writeToFile:filePath atomically:YES];

最新更新