该函数获取昨天的日期;它可以在我的模拟器上运行,但是在我的真实设备上崩溃。
我正在使用Xcode6 Beta 6。
var tuple :(value Int, unit:NSCalendarUnit) = (1, NSCalendarUnit.CalendarUnitDay)
var date = NSDate()
var yesterday = NSCalendar.currentCalender().dateByAddingUnit(tuple.unit, value: (-tuple.value), toDate: date, options: NSCalendarOptions.SearchBackwards)
这是我在真实设备上遇到的错误:
-[_NSCopyOnWriteCalendarWrapper dateByAddingUnit:value:toDate:options:]: unrecognized selector sent to instance 0x176cca10
我最近有一个类似的错误。
我怀疑您正在尝试在8.0之前的设备上运行代码。如果是这种情况,dateByAddingUnit
则您的设备上不可用(请参见标题)
@availability(iOS, introduced=8.0)
您可以通过使用“ dateByAddingComponents”来实现您想要做的事情-有点麻烦,但是应该给您相同的结果。尝试以下游乐场
import UIKit
import Foundation
var tuple:( Int, NSCalendarUnit) = (1, NSCalendarUnit.CalendarUnitDay)
var date = NSDate()
/* 8.0+ */
var yesterday = NSCalendar.currentCalendar().dateByAddingUnit(tuple.1, value: (-tuple.0), toDate: date, options: NSCalendarOptions.SearchBackwards)
/* 7.1 + */
let component = NSDateComponents()
if tuple.1 == NSCalendarUnit.CalendarUnitDay {
component.day = -tuple.0
}
var alsoYesterday = NSCalendar.currentCalendar().dateByAddingComponents(component, toDate: date, options: NSCalendarOptions.SearchBackwards)
希望这可以帮助!:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句