• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:48:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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



Best Answer-推荐答案


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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap