0
これを動作させようとしていますが、エラーコード:スレッド1:シグナルSIGABRTがAppDelegate.swiftにあります。私がやろうとしていること:特定の日時に開始するゲームタイマーを可能な限り正確に作成する。私はviewWillLoad()を使用したいが、私はrunloopがNSTimerを初期化すると思った。私はこれに近づくためのさまざまな方法を試みましたが、良い方法があれば教えてください。助けていただければ幸いです!エラーコード:スレッド1:シグナルSIGABRT NSTimerとNSDateを持つゲームタイマー
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var gameTimerLabel: UILabel! // Game timer label, should be updated with NSTimer
func updateLabel()-> (String) {
let startDateAsString = "Mon, 12 Apr 2016 12:00:00 MDT" // Start date as a string
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz"
let startDate = dateFormatter.dateFromString(startDateAsString) // Start date as NSDate
let now = NSDate()
let difference = now.timeIntervalSinceDate(startDate!) // Time since start date
let dateComponentsFormatter = NSDateComponentsFormatter() // Format so time is in Min:Sec
let timer = dateComponentsFormatter.stringFromTimeInterval(difference)
self.gameTimerLabel.text = timer! // Updating Label
return timer! // Tried to use the return value to update timer
}
// Timer set up, should fire updateLabel each time
func timerSetup(){
let myTimer = NSTimer(timeInterval: 0.5, target: self, selector: "updateLabel", userInfo: nil, repeats: true)
NSRunLoop.currentRunLoop().addTimer(myTimer, forMode: NSRunLoopCommonModes)
}
}
あなたが取得している正確なクラッシュログとは何であるに
を変更する必要がありますか?どこからtimerSetupメソッドを呼び出していますか?そのStringをupdateLabel関数から返す目的は何ですか? –
例外ブレークポイントを追加しようとしましたが、クラッシュの理由に関する詳細情報を取得しましたか? –
@MidhunMPクラッシュログを別のファイル(デフォルトのAppDelegate.swift)に入れました。変更はありませんでした。私はtimerSetupを呼び出す必要があります、あなたは正しいです、私はエラーコード "パラメータ#1の呼び出しのための欠落している引数を取得します。私はラベルを更新するためのタイマーとして文字列を返していた、私はそれを削除することができます –