我需要将NSTimeInterval类型的变量(我知道是Double)转换为Integer.我已经尝试过这里的解决方案:
How to convert NSTimeInterval to int?,没有成功.任何人都可以在Swift中提供有关如何执行此操作的任何建议吗?
以下是我的功能:
以下是我的功能:
func getHKQuantityData(sampleType: HKSampleType,timeUnit: NSCalendarUnit,startDate: NSDate,endDate: NSDate,completion: (Void -> Void)) -> [(NSDate,Double)] { var startTime = 0 var endTime = 0 var repeat: NSTimeInterval var returnValue: [(NSDate,Double)] = [] var queryType: String = "" var predicate: NSPredicate! let timeInterval = endDate.timeIntervalSinceDate(startDate) switch sampleType { case HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount): queryType = "step" case HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeight): queryType = "height" case HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBodyMass): queryType = "weight" case HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBodyMassIndex): queryType = "bmi" default: println("No recognized type") } switch timeInterval { // 1. Case for seconds case 0...59: predicate = HKQuery.predicateForSamplesWithStartDate(NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitSecond,value: startTime,toDate: NSDate(),options: nil),endDate: NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitSecond,options: .None) repeat = timeInterval // 2. Case for minutes case 61...3599: predicate = HKQuery.predicateForSamplesWithStartDate(NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitMinute,endDate: NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitMinute,options: .None) repeat = round(timeInterval / 60) // 3. Case for Hours case 3600...86399: predicate = HKQuery.predicateForSamplesWithStartDate(NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitHour,endDate: NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitHour,options: .None) repeat = round(timeInterval / 3600) // 4. Default for Days default: predicate = HKQuery.predicateForSamplesWithStartDate(NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitDay,endDate: NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitDay,options: .None) repeat = round(timeInterval / 86400) } /* for x in 1...repeat { } */ // Returns one data point for each timeUnit between startDate and endDate // array of tuples - (date,double) return returnValue }