web-dev-qa-db-ja.com

Swift)でNSNumberをNSTimeIntervalに変換します

私はSwiftに非常に慣れていないので、Swiftで、ある種のキャストで立ち往生しています。

これが私のコードです:

 if let matchDateTime = item["matchDate"].number {
     _matchDateTime=matchDateTime
 }

 println(_matchDateTime)                      
 let date = NSDate(timeIntervalSince1970:_matchDateTime)

しかし、それは私にエラーを与えます:

Extra argument timeSinceInterval1970 in call

そのエラーが何であるかわかりません。NSNumberNSTimeIntervalに変換する可能性がありますが、どうすればよいですか?わからない。

これで私を助けることができる人は誰でも。

前もって感謝します。

9
BeingShashi

NSTimeIntervalは単なる型付きのDoubleです。

したがって、NSNumberからNSTimeIntervalにキャストします。

let myDouble = NSNumber(double: 1.0)
let myTimeInterval = NSTimeInterval(myDouble.doubleValue)

編集:そしてその逆が真実です。

let myTimeInterval = NSTimeInterval(1.0)
let myDouble = NSNumber(double: myTimeInterval)

編集2:@DuncanCが以下のコメントで指摘しているように、メソッド呼び出しで直接キャストできます。

let date = NSDate(timeIntervalSince1970: NSTimeInterval(_matchDateTime))
32
Blake Merryman

NSNumberをDoubleにキャストしてみてください。このコードは遊び場で機能します:

let aNumber: NSNumber = 1234567.89
let aDate = NSDate(timeIntervalSinceReferenceDate: Double(aNumber))
5
Duncan C