【发布时间】:2020-09-20 09:57:02
【问题描述】:
我试图找出为什么我在 Xcode 中收到以下消息:
Instance will be immediately deallocated because property 'delegate' is 'weak'
这是一个代码:
import ARKit
class OtherViewController: NSObject, ARSCNViewDelegate { }
class ViewController: UIViewController, ARSCNViewDelegate {
var arView = ARSCNView(frame: .zero)
let otherVC = OtherViewController()
override func viewDidLoad() {
super.viewDidLoad()
// I'M USING ONE OF THESE
arView.delegate = self // works fine
arView.delegate = otherVC // works fine
arView.delegate = ViewController() // PRINTS WARNING
}
}
问题:
我了解委托是 weak 并且是可选的:
weak var delegate: ARSCNViewDelegate? { get set }
但是,为什么 arView.delegate = self 或 arView.delegate = otherVC 可以正常工作,但 arView.delegate = ViewController() 会打印警告?
【问题讨论】:
标签: appdelegate swift-protocols