我已经创建了一个PHP文件,它打印出一个工作plist的所有源代码,我可以通过这种方式成功地将数据从数据库检索到我的应用程序中。
但是我不希望应用程序始终联机以获取数据库,因此我希望用户能够指定他/她想要更新plist的时间(通过按下“更新数据库”按钮)。
获取plist的代码:
NSURL *url_ = [[NSURL alloc] initWithString:@"http://localhost/~user/plist.php"];
NSArray *data = [NSArray arrayWithContentsOfURL:url_];
这很好用,但用户不必在线使用数据库......
我想要做的是用本地plist替换它,这很简单。
每当点击按钮“更新数据库”时,我想从网址下载新的plist并替换本地保存的那个。
希望你理解我的意思:)。
提前致谢 麦克
答案 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已创建并存储在文档目录
中