web-dev-qa-db-ja.com

Swift 2.0カレンダーコンポーネントエラー

こんにちはSwift 2.0でこのエラーが発生します

タイプ「(NSCalendarUnit、fromDate:NSDate ?, toDate:NSDate ?, options:nil)」の引数リストで「コンポーネント」を呼び出すことはできません

var hoy = dataFormatter.stringFromDate(NSDate())
        var despues = dataFormatter.stringFromDate(fecha)
        var calHoy = dataFormatter.dateFromString(hoy)
        var calcDesp = dataFormatter.dateFromString(despues)
        let cal = NSCalendar.currentCalendar()
        let unit:NSCalendarUnit = .Day
        let components = cal.components(unit, fromDate: calcDesp, toDate: calHoy, options: nil) 
24
Boss

Swift 2、現在NS_OPTIONSNSCalendarOptionsなど)はSwiftとしてOptionSetTypeとしてマップされ、セットのようなインターフェイスを提供します。特に、「オプションなし」は[]の代わりにnil

let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!,
                               options: []) 

参照 Swift 2.0-二項演算子 "|"は2つのUIUserNotificationTypeオペランドには適用できません と最近追加された SwiftでNS_OPTIONSスタイルのビットマスク列挙を作成する方法 詳細情報。

49
Martin R

次のようにrawValueを使用することもできます。

cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: NSCalendarOptions(rawValue: 0))

1
Bobj-C

オプション引数としてnilを渡すことはできません。代わりに空のオプションセットを使用します。

let components = cal.components(unit, fromDate: calcDesp!, toDate: calHoy!, options: [])

また、calcDespとcalHoyを必ずアンラップする必要があります。

1
Connor