私は "RunnerWindowController" 私のクラスでは、この機能を持っている:Swiftで返信せずにfuncを呼び出す方法は?
func didChangeScreenParameters(){
runnerLayer.removeAllAnimations()
animateRunner()
}
私が使用して別のクラスのうち、機能を呼び出そう:私は、この致命的なエラーが発生します
var RunnerWindowC: RunnerWindowController!
@IBAction func btnSenden(sender: AnyObject) {
RunnerWindowC.didChangeScreenParameters()
}
を:
fatal error: unexpectedly found nil while unwrapping an Optional value
私は戻り値は必要ありませんが、関数の実行のみです。
EDIT:私は死ぬRunnerWindowControllerでINITを持っているので、回答の2016年5月13日
なしに役立ちません。
解決しようとする課題:
私は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
}
あなた 'RunnerWindowC'プロパティは暗黙的に開封されたオプションで、関数を呼び出すとき、' nil'あるようセグエで使用する(これはすべきダブルではなく単一の '()'で行うべきです - [このQ&A]を見てください(http://stackoverflow.com/questions/32170456/what-does-fatal-error-unexpectedly-found-nil-while-unwrappingオプションの値を安全に処理する方法の詳細については、「オプションの値」を参照してください)。 – Hamish