2015-07-31 6 views
2

Я хотел бы изменить мой быстрый код на swift 2.0 , и я надеюсь, что вы можете мне помочь.Код изменения от swift to swift 2.0

   let calendar = NSCalendar.currentCalendar() 
      let components = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay , fromDate: notification.fireDate!) 
      var gregorian:NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 
      let unit: NSCalendarUnit = .CalendarUnitHour | .CalendarUnitMinute 
      var comps:NSDateComponents = gregorian.components(unit, fromDate: timepicker.date) 


      comps.setValue(components.day, forComponent: NSCalendarUnit.CalendarUnitDay) 
      comps.setValue(components.month, forComponent: NSCalendarUnit.CalendarUnitMonth) 
      comps.setValue(components.year, forComponent: NSCalendarUnit.CalendarUnitYear) 
      comps.setValue(comps.hour, forComponent: NSCalendarUnit.CalendarUnitHour) 
      comps.setValue(comps.minute, forComponent: NSCalendarUnit.CalendarUnitMinute) 
      var NewFiredate : NSDate = gregorian.dateFromComponents(comps)! 

в этой части моего кода я получаю следующие ошибки:

  • Не удалось найти элемент 'CalendarUnitYear'
  • Не удалось найти элемент 'CalendarUnitHour'
  • 'NSCalendarUnit.Type' не имеет члена с именем 'CalendarUnitHour'
  • 'NSCalendarUnit.Type' не имеет члена с именем 'CalendarUnitMinute'

большое спасибо :)

ответ

3

Вы можете использовать код, приведенный ниже, в основном я заменил перечислений с новым OptionSetType синтаксиса и несколько небольших изменений. NSCalendarUnit OptionSetType имеет следующие статические типы, которые вы можете использовать,

static var Era: NSCalendarUnit { get } 
static var Year: NSCalendarUnit { get } 
static var Month: NSCalendarUnit { get } 
static var Day: NSCalendarUnit { get } 
static var Hour: NSCalendarUnit { get } 
static var Minute: NSCalendarUnit { get } 
static var Second: NSCalendarUnit { get } 
static var Weekday: NSCalendarUnit { get } 
static var WeekdayOrdinal: NSCalendarUnit { get } 
static var Quarter: NSCalendarUnit { get } 
static var WeekOfMonth: NSCalendarUnit { get } 
static var WeekOfYear: NSCalendarUnit { get } 
static var YearForWeekOfYear: NSCalendarUnit { get } 
static var Nanosecond: NSCalendarUnit { get } 
static var Calendar: NSCalendarUnit { get } 
static var TimeZone: NSCalendarUnit { get } 

Итак, вы новый код будет выглядеть следующим образом,

let calendar = NSCalendar.currentCalendar() 
let components = calendar.components([.Year, .Month, .Day] , fromDate: notification.fireDate!) 
var gregorian:NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 
let unit: NSCalendarUnit = [.Hour, .Minute] 
var comps:NSDateComponents = gregorian.components(unit, fromDate: timepicker.date) 


comps.setValue(components.day, forComponent:.Day) 
comps.setValue(components.month, forComponent:.Month) 
comps.setValue(components.year, forComponent:.Year) 
comps.setValue(comps.hour, forComponent:.Hour) 
comps.setValue(comps.minute, forComponent:.Minute) 
var NewFiredate : NSDate = gregorian.dateFromComponents(comps)! 
+0

спасибо. но xcode скажите мне, что я изменил первую строку на _ = NSCalendarUnit.Year – Ghost108

+0

какое среднее _ = ?? – Ghost108

+0

О да, удалите первую строку, я ее отредактирую. – Sandeep