gpt4 book ai didi

iOS Framework Delegate 和 IBAction 没有在 Swift 中被调用

转载 作者:行者123 更新时间:2023-11-29 01:19:52 24 4
gpt4 key购买 nike

我正在使用 Objective-C 创建一个框架。我在 Objective-C 项目中一切正常。但是当我将我的框架与 Swift 项目集成时,它表现得很奇怪。

我的 Swift 项目:

  • 只有一个 ViewController 和一个连接了 IBAction 的按钮。

现在:

  • viewDidAppear 中,我已经初始化了我的框架并将 delegate 设置为 self
  • 一旦调用了初始化成功的委托(delegate),我将调用另一个方法。
  • 但奇怪的是一切都停止了,甚至 IBAction 也不工作。

但是当我尝试在 viewDidAppear 中添加 NSTimer repeat 方法时,一切都再次正常工作。

我知道这是一个非常奇怪的问题,但可能有人遇到过这个问题。

我的代码:

override func viewDidAppear(animated: Bool) {
MySDK.sharedInstance().initWithAppKey("123")
MySDK.sharedInstance().delegate = self

NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timer", userInfo: nil, repeats: true)
}

委托(delegate)调用,

//This is getting called
func initSdkSuccessful() {
MySDK.sharedInstance().doStuff()
}

//This is not getting called
func stuffDone() {

}

IB Action ,

//This is getting called if I do not set delegate,but if I set delegate to self then It doesn't.
@IBAction func btnTapped(sender: UIButton) {
MySDK.sharedInstance().doAnotherStuff()
}

谢谢

最佳答案

我找到了非常简单的解决方案,

刚刚将我的委托(delegate)从 weak 引用更改为 strong,仅此而已。

可能是问题是,当委托(delegate)方法之一被调用时,委托(delegate)对象变为 nil,因为它是 weak 引用。

关于iOS Framework Delegate 和 IBAction 没有在 Swift 中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com