こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Swiftについて教えてください

タイマー処理をしようと以下のようにしたのですが、
Cannot invoke 'scheduledTimerWithTimeInterval' with an argument list of type '(Float, target: ViewController, selector: String, userInfo: nil, repeats: Bool)'というエラーがでます。

Floatの部分に直接、小数を記述するとエラーが消えるのですが、self.Intervalなど変数で指定できないのでしょうか?

import UIKit
class ViewController: UIViewController {
//
var Interval:Float = 1.0
//
var timer = NSTimer()

override func viewDidLoad() {
super.viewDidLoad()

//タイマー開始
self.start()

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

//スライドショーを開始する
func start(){
//タイマー定義
self.timer = NSTimer.scheduledTimerWithTimeInterval(self.Interval, target: self, selector: "next:", userInfo: nil, repeats: true)

}

//次へ
func next(timer:NSTimer){
println("次へ")
}
}

投稿日時 - 2016-01-26 22:07:21

QNo.9117639

すぐに回答ほしいです

質問者が選んだベストアンサー

scheduledTimerWithTimeIntervalの第1パラメータの型はFloatではなくNSTimeIntervalです。
(参考)
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/#//apple_ref/occ/clm/NSTimer/scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:

なので、
var Interval:Float = 1.0
ではなく
var Interval:NSTimeInterval = 1.0
とすればよいです。

投稿日時 - 2016-01-27 12:05:38

お礼

ありがとうございました。タイマー動きました。

投稿日時 - 2016-01-28 05:58:59

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

var Interval:Float = 1.0
のところを
let Interval:Float = 1.0
にしてみてはどうでしょうか。

頑張ってください!

投稿日時 - 2016-01-27 02:54:01

お礼

ありがとうございます。試してみます。

投稿日時 - 2016-01-28 05:57:20