我正在使用Swift 1.2
我有一个UIViewController,它是UITableView的委托。当我从一个NavigationController中弹出这个VC时,UITableView内的UIScrollView尝试在我的VC被释放后调用它并导致EXC_BAD_ACCESS崩溃。
为什么呢? ARC不应该对此进行排序吗?
为了解决这个问题,我必须写一下:
deinit {
self.tableView.delegate = nil
}
烦。我做了些蠢事吗?
代表被挂在一个故事板中,这并不奇怪。事实上,无法想到任何有关我的设置的异常。
UITableView委托声明:
// Swift
unowned(unsafe) var delegate: UITableViewDelegate?
// Obj-C
@property(nonatomic, assign) id< UITableViewDelegate > delegate
要添加到Alex的正确答案,这在iOS 9中显然是修复的:
https://twitter.com/zwaldowski/status/627158943035457536 https://twitter.com/steipete/status/608387828221898754
答案 0 :(得分:4)
并非所有Apple的框架都在内部使用ARC。您所看到的可能是UIScollView
/ UITableView
仍在使用手动内存管理的结果。