결과가 NSCalendar.startOfDayForDate(date:)
과 같도록 NSDate 객체를 변경할 수 있습니까? 그 방법은 아이폰 OS 8 및 최신 만 사용할 수 있습니다,하지만 난 두 가지 방법에 아이폰 OS 7NSCalendar.startOfDayForDate (date :) 반환 값이 아닌 선택형 인 iOS 7에 해당
나는 보았다 작동 뭔가를 찾고 있어요 : 여기에 설명 된대로
NSCalendar.dateFromComponents(comps:)
: NSDate beginning of day and end of day합니다. 예를 들어,이 같은, 즉stringFromDate(date:)
로서,있는 NSDate 객체로 다시 변환 한 후, 시간이없는 문자열에있는 NSDate 객체를 변환하여class func startOfDay(date: NSDate, calendar: NSCalendar) -> NSDate { if #available(iOS 8, *) { return calendar.startOfDayForDate(date) } else { let dateComponents = calendar.components([.Year, .Month, .Day], fromDate: date) return calendar.dateFromComponents(dateComponents)! } }
NSDateFormatter.dateFromString(string:)
.
두 방법의 문제점은 선택 사항 인 NSDate를 반환한다는 점입니다. 나는 이것을 암묵적으로 unwrap하는 것을 꺼려하고 있으며, 나는이 메소드가 호출되는 메소드의 리턴 타입을 변경하는 것을 피하려고한다.
나는 이것에 대해 조금 더 생각했다. 초보자 인 경우 암시 적으로 래핑되지 않은 옵션을 언제 받아 들일 수 있는지를 쉽게 알 수 없습니다. 나는 이것이 올바른 접근법이 될지 확신하지 못했다. 왜냐하면 그 방법이 무엇을 반환하지 않을지 알 수 없기 때문이다. 지금 당장 당신의 제안을 따를 것입니다. – Eitot