gpt4 book ai didi

ios - 贯穿整个应用程序的运行方法 - IOS

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:04:16 24 4
gpt4 key购买 nike

我有一种方法可以将一组图像保存到我的数据库中。这发生在后台,因此用户可能会弹出导航 Controller 而留下多张未保存的图像。

 - (void) sendToCloud{
sending = true;
if (cloudQueue.count != 0) {
[[cloudQueue firstObject] saveInBackgroundWithBlock:^(BOOL succeeded, NSError * _Nullable error) {
if (succeeded) {
[cloudQueue removeObjectAtIndex:0];
[self sendToCloud];
}else{
[self sendToCloud];
}
}];
}else{
sending = false;
}
}

我是否应该向我的 NavigationController 发送通知以运行此方法,以便无论用户走到哪里,该方法都会继续运行?我怎样才能让这个方法继续运行?

最佳答案

有很多方法可能会丢失这些图像。例如,该应用程序可能会被杀死。然后它们就消失了,无论您做什么。

一个好的方法是将所有图像保存到 Core Data 模型中,以便它们持久保存在磁盘上。然后创建一个协调后台上传的模型 Controller 。模型 Controller 不属于任何 View Controller ,并且在它们全部发送之前一直工作。一旦图像在云端(或不在云端,如果愿意),它可以删除图像。

这样,当应用程序启动时,您还可以检查是否有未发送的图像。模型 Controller 只是进行上传。

这种方法的好处是图像不会丢失,并且可以容忍较差的网络连接(图像会保留在模型中,直到可以发送为止)。

如果您真的不想使用 Core Data,那么您可以自己将图像保存到磁盘。如果您将它们放在 Caches 目录的子目录中,那么您的 Controller 可以继续发送直到子目录为空(随着它的进行删除)。

关于ios - 贯穿整个应用程序的运行方法 - IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39085495/

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