带指示器的背景Swift post

带指示器的背景Swift post,swift,xcode,post,urlsession,Swift,Xcode,Post,Urlsession,我正在尝试创建一个用户可以发布的社交应用程序 它有一个包含2个部分的tableView 0: depending posts 1: posts Post数据如下所示: id: Int post: String uploading: Bool = true 如果用户点击“写一篇新文章”,就会出现一个新的视图控制器,由VC处理文章上传 当用户发送帖子时,它会立即被添加到依赖帖子中,然后应用程序弹出到根VC,+它会启动一个URL会话 self.dismiss(animated: true, com

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

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

0: depending posts
1: posts
Post数据如下所示:

id: Int
post: String
uploading: Bool = true
如果用户点击“写一篇新文章”,就会出现一个新的视图控制器,由VC处理文章上传

当用户发送帖子时,它会立即被添加到
依赖帖子中
,然后应用程序弹出到根VC,+它会启动一个URL会话

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
    }
})
这段代码将帖子上传到web上。如果网络连接失败,或者我的网站响应未被接受,则我应用程序中的帖子将其
上传
值更改为
false

在此之后,tableView将重新加载一个通知


通过这种方式,我可以知道帖子是否上传失败(它位于
取决于帖子
,其
上传
bool设置为false)。在这种情况下,我会向用户显示一个按钮以重试“失败。单击以重试。

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

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


我的问题是,我做得对吗

或者你会推荐什么

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


图像:


我认为这个解决方案没有任何问题。看起来您正在做正确的事情,将数据转换为URL会话,并让它在后台发生。我可能做的唯一更改是包含一个活动指示器,该指示器可以在URL会话结束时使用完成闭包关闭。可以说,您已经在监视它了,因此可以相当轻松地实现。

总体来说,看起来不错。如果用户在显示“发布…”的同时终止应用程序,会有什么表现?@Augie如果应用程序终止,则urlsession失败,因此不会发布到web,+应用程序中的帖子将被删除