gpt4 book ai didi

ios - 如何更新 iPhone 应用程序中的数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:19:41 25 4
gpt4 key购买 nike

我创建了一个应用程序,数据存储在 plist 中。现在我可以通过哪些方式更新数据?也许如果我创建一个网页并从中检索我的数据而不是存储在 plist 中?或者有什么方法可以在我插入 iTunes 时更新我的​​数据?或者还有什么建议?我想要实现的是一种在用户下载应用程序后更新我的数据的方法。

最佳答案

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dir = [path objectAtIndex:0];
NSString *filePath = [dir stringByAppendingPathComponent:@"my.plist"];

NSMutableDictionary *localDictionary;
NSUrl *remoteUrl = [NSURL URLWithString:@"http://server.com/my.plist"];
NSMutableDictionary *remoteDictionary = [NSMutableDictionary dictionaryWithContentsOfURL:remoteUrl];
if(remoteDictionary != nil) {
[remoteDictionary writeToFile:filePath atomically:YES];
localDictionary = remoteDictionary;
}
else {
localDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];
if(localDictionary == nil) localDictionary = [NSMutableDictionary dictionary];
}

这将尝试从 http://server.com/ 获取 my.plist 的副本,成功后它将写入磁盘并指向 localDictionary 给它,出错时它会尝试从磁盘读取(例如,之前有连接时下载),如果磁盘上没有文件,它会创建一个空的 NSMutableDictionary .无论哪种方式,localDictionary 最终都会指向一个 NSMutableDictionary

这非常简单,每次运行代码时都会请求该文件。你可以例如使用 NSFileModificationDate(通过 NSFileManger attributesOfItemAtPath:error: 获取)和 NSDate 确定是否需要更新。或者对于大文件版本控制也很有意义,有一个包含大文件版本的小文件 - 从服务器获取小文件(例如使用 NSString),检查缓存的版本文件是否包含较低的版本号,如果是这样,请获取大文件。这始终取决于内容的刷新频率。

查看完整文档:NSDictionary , NSString , NSFileManager , NSDate

关于ios - 如何更新 iPhone 应用程序中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3581848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com