これは私が抱えていた問題です。問題を解決するために何かを見つけることができませんでした。基本的に私は何が起こっている、イベントのシナリオを作成すると、私のCreateEventViewControllerで切り替えると仮定されているUISwitchを持って、それは、私のSetCountdownViewControllerですが、その設定のビューコントローラを起動するが、私はしたいSetCountdownViewControllerにキャンセルボタンを設定して、SetCountdownViewControllerを終了し、私のUISwitchをオフに切り替えることができますが、これまでにいくつかのエラーやバグがありました。UISwitch状態を設定し、View Controllerを起動し、キャンセルを押してスイッチをオフにする方法
私はいくつかのチュートリアルを見て、彼らはすべてのsomeSwitch.on
と
someSwitch.setOn([state, true/false], animated:[true/false])
を使用するように私に言ったとの両方が最初に働くよう、エラーがポップアップしていない、私は、ビルドして実行することができますが、私はテストするために行くときに私私のキャンセルボタンを機能と押して、それが「スレッド1:EXC_BAD_INSTRUCTION(コード= EXC_i386_INVOP、サブコード= 0x0の)」と言って私にエラーを与える「countdownSetSwitch.setOn(アニメーション、偽:真) 」という行に
を私のログの中に「致命的なエラー:予期せぬことにnilが見つかりました。
私はそれをfalseにリセットするはずの関数を持っていますが、エラーが発生している場所でも、どこに置いても.setOnまたは.onにすると、このエラーが出ます。廃止されるかもしれませんが、実際に呼び出されるまでビルド/ランニングのために何らかの形で機能します。私の機能のthats
func resetCountdownSwitch(){ countdownSetSwitch.setOn(false, animated: true) }
。
私はキャンセルボタンを私のIBActionでここに呼び出しています。
@IBAction func countdownCancelButton(sender: AnyObject) {
createEventVC.resetCountdownSwitch()
dismissViewControllerAnimated(true, completion: nil)
}
任意のヘルプは素晴らしいだろうあなたはより多くの情報idはそれを与えるために幸せになる必要がある場合、私は、スウィフトにかなり新たなんだ、とiOSの開発全体として、それは新人の間違いかもしれので、私は」 m切った。
これは間違いなく推奨されていません。この関数をどこで呼びますか?どのViewControllerがスイッチを所有していますか?これを呼び出すと、どの状態ですか? – Dare
私はキャンセルボタンのIBAction内でこの関数を呼び出していますが、CreateEventViewControllerはスイッチを所有していて、デフォルトではoffの位置に設定されていますが、状態が変更されたときにSetCountdownViewControllerを呼び出すように設定しています。 @Dare – GabrielMSC
これが起こる方法を教えてください。 SetCountdownViewControllerを表示してCreateEventViewControllerの状態を変更しようとすると、これを実行してnilで関数を呼び出すときに、インスタンスがすでに割り当て解除されている可能性があります。 – Dare