我的应用程序在代码中分配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!
}
答案 0 :(得分:0)
当Storyboard(或xib)取消归档UI元素时,它会将它们作为子视图添加到现有视图中。因此,有一个强引用(子视图被强烈引用),虽然IBOutlets很弱,但有一个很强的参考来阻止它们被释放。
如果要在代码中创建视图并将其添加到weak
引用中,除非您已将它们添加为子视图,否则没有引用,因此没有任何内容保留在这些UI项目上,因此它们将被取消分配。 / p>