从URL内容创建Plist

时间:2012-08-15 12:33:25

标签: iphone objective-c xml xcode plist

我已经创建了一个PHP文件,它打印出一个工作plist的所有源代码,我可以通过这种方式成功地将数据从数据库检索到我的应用程序中。

但是我不希望应用程序始终联机以获取数据库,因此我希望用户能够指定他/她想要更新plist的时间(通过按下“更新数据库”按钮)。

获取plist的代码:

NSURL *url_ = [[NSURL alloc] initWithString:@"http://localhost/~user/plist.php"];
NSArray *data = [NSArray arrayWithContentsOfURL:url_];

这很好用,但用户不必在线使用数据库......

我想要做的是用本地plist替换它,这很简单。

每当点击按钮“更新数据库”时,我想从网址下载新的plist并替换本地保存的那个。

希望你理解我的意思:)。

提前致谢 麦克

2 个答案:

答案 0 :(得分:2)

保存文件的方法是使用返回BOOL的方法writeToFile:atomically来告诉您文件是否已保存。

这是一个代码示例:

NSArray* a = [NSArray new]; 
BOOL sucess = [a writeToFile:@"my.plist" atomically:YES];
if (!sucess) {
    NSLog(@"Ups, not saved");
}

之后,您可以从您的文档路径加载文件

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1  Create a list of paths.
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"my.plist"]; 

NSFileManager *fileManager = [NSFileManager defaultManager];

if ([fileManager fileExistsAtPath: path]) {
    NSarray* a = [NSArray arrayWithContentsOfFile:path];
   }
}

它可能会解决您的问题!

答案 1 :(得分:1)

执行此操作将plist数据写入文档目录,如下所示:

  [arrImages writeToFile:@"yourDocDirPathWithPlist" atomically:YES];

现在plist已创建并存储在文档目录