ios - Swift iOS,UITableView 无

标签 ios swift uitableview

我有一个 Swift (2.2) iOS 应用程序(我的第一个),其中包含几个 UITableViews。其中一个 View 列出了在整个计划生命周期中添加/删除的付款。

这一切在 99% 的情况下都工作正常,但是有几次我遇到了 UITableView 突然变成 nil 的问题。

IBOutlet 必须正确连接,否则根本无法工作。

当我没有在任何地方分配给 IBOutlet 变量(只是调用其方法)时,可能是什么原因导致的?

或者(如果我找不到原因),在发生这种情况时提供最佳处理建议(如果我需要重新创建它,outletsevents自动布局等?)

@IBOutlet weak var paymentTableView: UITableView!


func handlePayment(payment: PaymentRecord) -> Void {
    let existingPaymentIndex = payments.indexOf({ $0.payNo == payment.payNo })

    if (existingPaymentIndex != nil) {
        payments.removeAtIndex(existingPaymentIndex!)
    }

    if (self.paymentTableView == nil) { // Here is where I notice the issue
        Log.error?.message("handlePayment: paymentTableView is nil!!")
        return
    }

    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        self.paymentTableView.reloadData()
    })
}

最佳答案

发生的情况是,当 View 被释放时, TableView 正在从内存中卸载。您可能有一个异步任务完成,通常是通过网络调用完成的,即在 View 被释放后返回并调用此函数。当 View 尝试加载网络资源并且用户能够在调用网络调用的完成处理程序之前切换到不同的 View 时,我已经多次看到这种情况发生。

关于ios - Swift iOS,UITableView 无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36342603/

相关文章:

ios - 应用程序中的 Google Directory 用户列表

ios - 使用 Nib 的多个 customTableViewCell

ios - 从两个不同的 nibs Swift 附加 tableview 自定义单元格

iphone - UITableViewCell 动画

ios - 歌曲不可用时的警报 View

ios - 设置按钮类型

ios - 点击测试旋转 View

xcode - 具有 LeftTop 圆角和 RightTop 角角的 MapView

ios - 将数组的值从另一个 View Controller 获取到 tableViews 标签中的 View Controller swift ios

ios - 在 iOS 中为单个标记单元添加颜色