我知道在父视图中呈现viewController时,所有这些都是弱强引用...如果我错了请纠正我
这是我如何做的一个例子
let viewHolder = viewClass()
func presentView() {
self.present(viewHolder, animated: true) {
}
}
从打开状态看我的记忆显示器 并反复关闭相同的视图
weak var viewHolder = viewClass()
func presentView() {
self.present(viewHolder!, animated: true) {
}
}
但这会让我崩溃
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
以这种方式解除viewClass(内部关闭)
func dismissPage() {
self.dismiss(animated: true)
}
任何帮助将不胜感激 谢谢
答案 0 :(得分:0)
问题可能不在viewClass
中。您在初级课程中声明let viewHolder = viewClass()
。因此,当您关闭控制器时,该变量仍然存在。你需要保留它的参考吗?如果没有,你可以在需要显示时轻松分配它,当你关闭它时,内存将被释放:
func presentView() {
// instead of saving viewHolder as an instance variable, you declare it locally
let viewHolder = viewClass()
self.present(viewHolder, animated: true) {
}
}
答案 1 :(得分:0)
使用deint方法并在关闭viewcontroller后检查它是否被调用。
如果你使用任何类型的块或闭合来完成工作,那么在你的闭合边使用[弱自我]。