2016-04-12 20 views
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) 

} 
} 
+0

あなたが取得している正確なクラッシュログとは何であるに

func updateLabel()-> (String) 

を変更する必要がありますか?どこからtimerSetupメソッドを呼び出していますか?そのStringをupdateLabel関数から返す目的は何ですか? –

+0

例外ブレークポイントを追加しようとしましたが、クラッシュの理由に関する詳細情報を取得しましたか? –

+0

@MidhunMPクラッシュログを別のファイル(デフォルトのAppDelegate.swift)に入れました。変更はありませんでした。私はtimerSetupを呼び出す必要があります、あなたは正しいです、私はエラーコード "パラメータ#1の呼び出しのための欠落している引数を取得します。私はラベルを更新するためのタイマーとして文字列を返していた、私はそれを削除することができます –

答えて

-1

たぶん、あなたは

func updateLabel(myTimer:NSTimer)-> (String) 
+0

それがなぜ行われるのかの説明が役に立つでしょう。 –