【发布时间】:2019-09-10 14:17:07
【问题描述】:
我有一个UITableView,最多有几百个单元格(并非一次全部可见)。每个单元格都包含一个UIButton,其中包含一种指示上传进度的方法。 URLSession 在后台任务中执行上传。
目前,会话委托是管理单元的UIViewController。因此,会话调用 delegate
.URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend: 定期通知代理向服务器发送内容的进度。
在委托方法中,我找到了与此任务关联的UIButton,并为新的进度设置动画(我可以找到按钮,因为我制作了button.identifier = task.identifier)。
这种方法迫使我在每次调用委托方法时都找到按钮。这似乎是间接的,我想知道是否有更好的方法来做到这一点 - 可能有 100 多个按钮非常担心运行时间。
我正在考虑让按钮成为会话委托,但这与 MVC 相违背,并且按钮引用可能会在表格视图中消失或更改,从而导致未定义的行为(尽管只更新实际在记忆)。
【问题讨论】:
标签: ios model-view-controller uiviewcontroller