もともと、以下の機能を実装していました。
・ボタンを押すと、一定時間画像を表示して、その後消す。
(dispatch_timeを用いています)
そしてここに、NSTimerを用いて(ボタンを押さなくとも)(上記と全く同じ方法で)一定時間ごとに画像を表示して、その後消すという機能を加えたところ、
Thread 1:signal SIGABRT が表示されてしまいました。
(ログには、terminating with uncaught exception of type NSException と表示されていました)
ボタンのひも付けの部分など、自分で調べられる範囲のところは確認しましたが、どうしてもエラーを直すことができません。
どなたかご教授いただければと思います。
エラー内容について、情報が足りず申し訳ありませんでした。
再度確認したところ、以下のような部分が見つかりました。
「ImageControl[456:116545] -[ImageControl.ViewController update]: unrecognized selector sent to instance 0x170fe400
2015-10-24 13:34:57.245 ImageControl[456:116545] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ImageControl.ViewController update]: unrecognized selector sent to instance 0x170fe400'
*** First throw call stack:
(0x26fb267b 0x38a4ae17 0x26fb7e95 0x26fb5ac9 0x26ee6128 0x27d86365 0x26f7638f 0x26f75fc1 0x26f73e0d 0x26ec7119 0x26ec6f05 0x30051ac9 0x2b109f15 0x9d324 0x391b9873)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 」
また、エラーの表示があったのは「class AppDelegate: UIResponder, UIApplicationDelegate」の部分でした。
適切な質問ができずご迷惑おかけしますが、よろしくお願いいたします。
当のプログラムは以下の部分です。
override func viewDidLoad() {
super.viewDidLoad() //一定時間ごとに画像を表示させたのちに隠す var timer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: Selector("update:"), userInfo: nil, repeats: true)
func update(timer: NSTimer){
mainImage.hidden = false
let delay = 3.0 * Double(NSEC_PER_SEC) let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay)) dispatch_after(time, dispatch_get_main_queue(), { self.mainImage.hidden = true self.Mask.hidden = false let delay = 4.0. * Double(NSEC_PER_SEC) let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay)) dispatch_after(time, dispatch_get_main_queue(), { self.Mask.hidden = true }) }) }
回答1件
あなたの回答
tips
プレビュー