Cocoa touch 一个UIBarButton';谁的目标是创建一个保留周期?
我正试图找出一个循环的原因,发现这很可疑。这对我来说是一个有用的模式,但是这段代码会创建一个保留周期吗Cocoa touch 一个UIBarButton';谁的目标是创建一个保留周期?,cocoa-touch,Cocoa Touch,我正试图找出一个循环的原因,发现这很可疑。这对我来说是一个有用的模式,但是这段代码会创建一个保留周期吗 myVC: UIViewController { private lazy var cancelButton: UIBarButtonItem = { return UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(onTapCancel)) }() } 我不知道API是
myVC: UIViewController {
private lazy var cancelButton: UIBarButtonItem = {
return UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(onTapCancel))
}()
}
我不知道API是否会以弱或强的方式保留对
self
的引用。不,苹果使用的目标操作机制通常不允许控件出于这个原因保留其目标,尽管找到可靠的引用有点困难
如果选中,您将看到:
控件不会将对象保留在目标参数中。当目标对象附加到控件时,您有责任保持对目标对象的强引用
如果选中,您将看到:
控制对象不(也不应该)保留其目标。但是,发送操作消息的控件的客户端(通常是应用程序)负责确保其目标可用于接收操作消息
不,由于这个原因,苹果使用的目标操作机制通常不允许控件保留其目标,尽管要找到可靠的引用有点困难 如果选中,您将看到: 控件不会将对象保留在目标参数中。当目标对象附加到控件时,您有责任保持对目标对象的强引用 如果选中,您将看到: 控制对象不(也不应该)保留其目标。但是,发送操作消息的控件的客户端(通常是应用程序)负责确保其目标可用于接收操作消息