gpt4 book ai didi

ios - 检查存储的文件和通过 URL 访问的文件之间的区别

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:36 26 4
gpt4 key购买 nike

我是 Swift 编程的新手,并试图在我的脑海(和我的代码)中找出以下情况的最佳实践:

我的应用在加载时访问服务器上一个简单的 txt 文件(仅 2KB)中的数据。我不希望将此文件与我的应用程序捆绑在一起,这样我就可以根据需要编辑数据,而无需用户在每次刷新此数据源时更新应用程序。

此外,我希望我的应用程序不需要在每次加载时访问其服务器上的此文件。因此,我希望应用程序在第一次打开时访问文件(我有这个功能),然后将数据文件存储在手机上,这样每次启动时都不需要互联网连接。

我无法解决的问题(广泛的谷歌搜索并没有提供太多见解)是我如何检查我的应用程序何时启动,如果它存储的数据文件与服务器上的数据文件不同。然后,如果不同,它可以下载并用最新的数据文件替换手机上的数据。

我正在考虑使用 Core Data API 在本地存储 txt 文件。感谢任何帮助建议或其他可能回答我没有找到的问题。

>>>更新(02/06/16)<<<

这是我最终得到的伪代码(或我的伪代码版本...)的解决方案。如果有人对我的实际解决方案感兴趣,我非常愿意分享。

identify name of file on phone AS phoneFile

if phoneFile does NOT exist
create phoneFile
retrieveData online and overwrite phoneFile with onlineData
else
immediately loadData from phoneFile (allowing app to be functional)
dispatch asynchronous function (in background while data loads from phoneFile)
{
if phoneFile != onlineData
update phoneFile, overwriting with onlineData
prompt user requesting to refresh data in application
else
do nothing
}

希望这是有道理的。本质上,我们第一次打开应用程序时,手机上没有文件,所以我们等待下载,然后使用该数据运行应用程序。

然而,每次之后,我们都会用手机上的数据打开应用程序,并在后台检查是否有新数据在线。我的在线文件只有 1KB,因此下载量不大,但这种方法有助于防止在网络连接缓慢或中断时应用加载缓慢。

此外,我在下面的评论中提到了这一点,但我使用了本教程中的文件保存功能:learncoredata.com/how-to-save-files-to-disk

最佳答案

如果你有两个文件

let root = NSBundle.mainBundle().resourceURL!
let localURL = root.URLByAppendingPathComponent("LocalFile")
let remoteURL = NSURL(string: "RemoteFile")

let localString = try! String(contentsOfURL: localURL)
let remoteString = try! String(contentsOfURL: remoteURL)

if(localString == remoteString) {
They are the same
} else {
Get the remote one and write it in.
}

希望对你有用!

关于ios - 检查存储的文件和通过 URL 访问的文件之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34229490/

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