在为ui元素分配弱引用时,为什么我的应用崩溃了?

时间:2017-09-06 11:20:53

标签: ios iphone swift uiview tableview

我的应用程序在代码中分配ui元素弱引用时崩溃,但默认情况下使用故事板时,ui元素被强制分配弱引用。

class UploadContactShowViewController: BasePage,UITableViewDelegate,UITableViewDataSource, DARChatPhoneShowCellDelegate {

    var counter = 0

    var delegate: UploadContactShowViewControllerDelegate?
    var contact: APContact?

    var contactSelected: APContact?
    var contacts: [DARContact] = []
    var selectedContacts: [DARContact]!
    var checkBoxs: [BEMCheckBox]!

    var avatarImageView: UIImageView!
    var fullNameLabel: UILabel!
    var tableView: UITableView!
}

1 个答案:

答案 0 :(得分:0)

当Storyboard(或xib)取消归档UI元素时,它会将它们作为子视图添加到现有视图中。因此,有一个强引用(子视图被强烈引用),虽然IBOutlets很弱,但有一个很强的参考来阻止它们被释放。

如果要在代码中创建视图并将其添加到weak引用中,除非您已将它们添加为子视图,否则没有引用,因此没有任何内容保留在这些UI项目上,因此它们将被取消分配。 / p>