gpt4 book ai didi

ios - 使用来自另一个类方法的参数调用类方法

转载 作者:搜寻专家 更新时间:2023-11-01 06:46:18 24 4
gpt4 key购买 nike

在我的代码文件 MyItemVC.swift 中,我定义了以下类和方法:

class MyItemVC: UIViewController, UITextViewDelegate {

var timer = NSTimer()

func cycleTimer(toggleOn: Bool) {
if toggleOn == true {
// Timer calls the replaceItem method every 3 seconds
timer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: Selector("replaceItem"), userInfo: nil, repeats: true)
} else {
timer.invalidate() // stop the timer
}
}
}

在这个类的其他地方,我调用 cycleTimer(true) 来启动定时器,调用 cycleTimer(false) 来停止它。

现在,我还想在我的 AppDelegate.swift 代码文件中使用常用方法来在应用程序从事件状态变为非事件状态时启动和停止计时器。但是我无法从该类调用 cycleTimer 方法。

我在 Stack Overflow 上找到了一个答案,建议我可以这样调用它:

func applicationWillResignActive(application: UIApplication) {

MyItemVC.cycleTimer()
}

但我还需要传入一个参数。所以我试着这样调用它:

func applicationWillResignActive(application: UIApplication) {

MyItemVC.cycleTimer(true)
}

但是我得到了这个错误:

Cannot invoke 'cycleTimer' with an argument list of type '(Bool)'

如何在传递参数时从 AppDelegate 方法中调用此方法?

感谢您的帮助。我意识到这一定是一个非常基本的问题,但我是编程新手并尝试使用 Swift 自学。非常感谢使用 Swift 而不是 Obj-C 的答案。

最佳答案

您需要使用类函数才能以这种方式使用它。

class func cycleTimer(toggleOn: Bool) {

但是,我不确定线程​​安全性。

关于ios - 使用来自另一个类方法的参数调用类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361071/

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