我正在尝试创建一个用户可以发帖的社交应用程序。
它有一个包含 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如果该帖子被接受,我会将其从相关帖子
中删除,并将其添加到正常帖子
我的问题是,我这样做对吗?
或者你会推荐什么?
目前我正在使用这个方法,效果很好。
<小时/>图片:
最佳答案
我认为此解决方案没有任何问题。通过将数据移交给 URL Session 并让其在后台发生,您似乎正在做正确的事情。我可能做的唯一更改是包含一个事件指示器,可以在 URL session 结束时使用完成闭包将其关闭。可以说您已经在监视它,因此您可以相当轻松地实现。
关于带指示器的后台快速发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51862016/