2015-11-05 2 views
0

Я создаю приложение, которое вычисляет количество дней между двумя датами. Когда я распечатать результат на консоль я получаю некоторый код включен, который я хочу, чтобы удалить из результата:Манипулирование строк в Swift

enter image description here

Я пытаюсь удалить нежелательный код, разделив строку, используя «componentsSeparatedByString».

Однако, чтобы использовать этот метод, я должен сначала преобразовать константу 'components' в NSString. Когда я пытаюсь сделать это, я получаю сообщение об ошибке: Не удается вызвать инициализатор для типа «NSString» со списком аргументов типа «(строка: NSDateComponents)»

@IBAction func calculateDays(sender: AnyObject) { 

    let start = String(firstSelectedDate.text!) 
    let end = String(secondSelectedDate.text!) 

    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "dd-MM-yyyy" 

    let startDate:NSDate = dateFormatter.dateFromString(start)! 
    let endDate:NSDate = dateFormatter.dateFromString(end)! 

    let cal = NSCalendar.currentCalendar() 
    let unit:NSCalendarUnit = NSCalendarUnit.NSDayCalendarUnit 

    let components = cal.components(unit, fromDate: startDate, toDate: endDate, options: []) 


    let newComponents = NSString(string: components) // Cannot invoke initializer for type 'NSString' with an argument list of type '(string: NSDateComponents)' 

    let componentsArray = newComponents?.componentsSeparatedByString("<NSDateComponents: 0x7f91aaf29980>") 

    print(componentsArray[1]) 

Был бы очень признателен, если кто-то может сказать мне, что Я поступаю неправильно.

Заранее благодарен!

ответ

1

После получения components переменных Вы можете получить day собственности, попробуйте вместо этого:

let start = "2010-09-01" 
let end = "2010-09-08" 

let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd" 

let startDate:NSDate = dateFormatter.dateFromString(start)! 
let endDate:NSDate = dateFormatter.dateFromString(end)! 

let calendar = NSCalendar.currentCalendar() 
let components = calendar.components([.Day], fromDate: startDate, toDate: endDate, options: []) 
print(components.day) // 7 

Я надеюсь, что это поможет вам.

+0

Решил проблему. Большое вам спасибо, Виктор! – mhs5819

Смежные вопросы