带指示器的后台快速发布

标签 swift xcode post urlsession

我正在尝试创建一个用户可以发帖的社交应用程序。

它有一个包含 2 个部分的 tableView

0: depending posts
1: posts

发布数据如下所示:

id: Int
post: String
uploading: Bool = true

如果用户点击“Write a new post”,则会出现一个新的 View Controller ,由 VC 处理帖子上传

当用户发送他的帖子时,它会立即添加到相关帖子中,然后应用程序会弹出到根 VC,+它会启动 URL session

self.dismiss(animated: true, completion: {
    PostFunctions.shared.post(){
        // ... code ...
        if response == 1 {
            // move post from depending to normal
        } else {
            // set the post’s uploading bool to false
        }
        // send notification to the main vc to reload its tableView
    }
})

此代码将帖子上传到网络。如果网络连接失败,或者我的网站响应不被接受,那么我的应用中的帖子会将其 uploading 值更改为 false

之后,tableView 会通过通知重新加载

<小时/>

这样我就知道帖子是否上传失败(它位于依赖帖子中,并且其uploading bool 值设置为false)。在这种情况下,我向用户展示了一个重试按钮“失败。点击重试。

如果上传设置为true,那么我会在单元格中显示一个标签,显示“发布...

Aaa如果该帖子被接受,我会将其从相关帖子中删除,并将其添加到正常帖子

<小时/>

我的问题是,我这样做对吗?

或者你会推荐什么?

目前我正在使用这个方法,效果很好。

<小时/>

图片:

enter image description here enter image description here

最佳答案

我认为此解决方案没有任何问题。通过将数据移交给 URL Session 并让其在后台发生,您似乎正在做正确的事情。我可能做的唯一更改是包含一个事件指示器,可以在 URL session 结束时使用完成闭包将其关闭。可以说您已经在监视它,因此您可以相当轻松地实现。

关于带指示器的后台快速发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51862016/

相关文章:

Swift:以数组为值过滤字典

swift - 在 Swift 5 中从 AWS S3 下载文本文件

即使设置为 "never",也可以访问 iOS11 照片库

swift - 为什么我的完成处理程序不能与我的 URLSession 一起工作?

php - POST 请求不允许流明框架中的异常

swift - 有没有办法去除 FaSTLane 截图中的 Push Notification Pop Up 确认消息?

ios - 呈现和关闭 View 导致异常

html - Swift HTTP POST 请求登录

php - 如何将变量作为 POST 从 Cocoa-Touch 应用程序发送到我的 php 站点?

xcode - 如何使用 NSUserDefaults 取消存档自定义数组?