gpt4 book ai didi

swift - 如何在 Swift 中调用不返回的函数?

转载 作者:行者123 更新时间:2023-11-30 10:04:05 25 4
gpt4 key购买 nike

我的类“RunnerWindowController”中有这个函数:

func didChangeScreenParameters(){
runnerLayer.removeAllAnimations()
animateRunner()
}

我尝试使用以下方法从另一个类中调用该函数:

var RunnerWindowC: RunnerWindowController!

@IBAction func btnSenden(sender: AnyObject) {
RunnerWindowC.didChangeScreenParameters()
}

我收到这个 fatal error :

fatal error: unexpectedly found nil while unwrapping an Optional value

我不需要任何返回,只需要函数的执行。

编辑:2016年5月13日

所有答案都没有帮助,因为我在 RunnerWindowController 中有一个 INIT。

已解决的问题:

我用 NSTimer 解决了这个问题。

RunnerWindowController:

var SetDidChange : Bool = false

class RunnerWindowController{
var startvalue : CGFloat = 0

var timer : NSTimer?

func initTimer() {
self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target:
self, selector: #selector(refresh), userInfo: nil, repeats: true)
}

@objc func refresh() {
if (SetDidChange == true) {
print("Refresh done")
runnerLayer.removeAllAnimations()
animateRunner()
SetDidChange = false
}
}
....
}

RunnerPrefController:

    override func viewDidAppear() {
SetDidChange = false
}

@IBAction func btnSenden(sender: AnyObject) {
SetDidChange = true
}

最佳答案

试试这个:

class RunnerWindowController: UIViewController {
class func didChangeScreenParameters(){
runnerLayer.removeAllAnimations()
animateRunner()
}
}

class yourClassName: UIViewController {
@IBAction func btnSenden(sender: AnyObject) {
RunnerWindowController().didChangeScreenParameters()
}
}

关于swift - 如何在 Swift 中调用不返回的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37056122/

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