Swift Xcode";";命令保留值

Swift Xcode";";命令保留值,swift,xcode,Swift,Xcode,我一直在调试我的代码,发现我的管理器被取消初始化(这是我的错误的原因-不调用委托方法) 奇怪的是,在调试过程中,我在设置管理器的委托(弱)之后使用了“po”命令,它阻止了它被取消初始化(调用了委托方法) 为什么呢?这是正确的行为吗 代码8.3,swift 3.1 编辑: 你的问题是: @IBAction func shareButtonPressed(_ sender: Any) { let requestManager = FacebookPostRouteRequest()

我一直在调试我的代码,发现我的管理器被取消初始化(这是我的错误的原因-不调用委托方法)

奇怪的是,在调试过程中,我在设置管理器的委托(弱)之后使用了“po”命令,它阻止了它被取消初始化(调用了委托方法)

为什么呢?这是正确的行为吗

代码8.3,swift 3.1

编辑:

你的问题是:

@IBAction func shareButtonPressed(_ sender: Any) {
    let requestManager = FacebookPostRouteRequest()
    requestManager.delegate = self
    requestManager.showShareBadgeDialog(self.badge!, onViewController: self)
}
在最后一行之后,
requestManager
对象将被释放,因为它不再被引用,并且不会调用任何委托方法

requestManager
设置为实例变量:

let requestManager = FacebookPostRouteRequest()
@IBAction func shareButtonPressed(_ sender: Any) {
    requestManager.delegate = self
    requestManager.showShareBadgeDialog(self.badge!, onViewController: self)
}
调试器的问题可能是停止主线程的争用条件。

您的问题在于:

@IBAction func shareButtonPressed(_ sender: Any) {
    let requestManager = FacebookPostRouteRequest()
    requestManager.delegate = self
    requestManager.showShareBadgeDialog(self.badge!, onViewController: self)
}
在最后一行之后,
requestManager
对象将被释放,因为它不再被引用,并且不会调用任何委托方法

requestManager
设置为实例变量:

let requestManager = FacebookPostRouteRequest()
@IBAction func shareButtonPressed(_ sender: Any) {
    requestManager.delegate = self
    requestManager.showShareBadgeDialog(self.badge!, onViewController: self)
}

调试器的问题可能是停止主线程的争用条件。

不可能,请显示正在调试的代码并用代码更新。在调用FBPostRouteRequest的po deinit后,不会调用。这是不可能的,请显示您正在调试的代码并用代码更新。在打电话给FBPostRouteRequest的po Denit后,这个问题就没有了。没错,我就是这样解决的。我只是想知道为什么“po”会阻止Denit。没错,我就是这样解决的。我只是想知道为什么“po”会阻止Denit。