2016-10-19 2 views
1

내가 가진 NSManagedObject 개체가 : 나는이 두 가지 사이의 시간 간격을 필요두 개의 'NSDate` 객체가있는`timeIntervalSince()`에`as Date'가 필요한 이유는 무엇입니까?

@NSManaged public var timestamp: NSDate 

를, 그래서 구현 :

let interval = next.timestamp.timeIntervalSince(current.timestamp) 

이유는 무엇입니까 다음과 같은 오류에서이 결과는?

'NSDate' is not implicitly convertible to 'Date'; did you mean to use 
'as' to explicitly convert? 

나는 nextcurrent 두 유형 NSDate의 때문에 놀랐어요, 그리고 timeIntervalSince()NSDate 방법이다.

그것은 쉽게 오류의 제안에 따라 고정,하지만 난 여기에 무슨 이해하고 싶습니다 : 그것은 중요한

let interval = next.timestamp.timeIntervalSince(current.timestamp as Date) 

경우,이 스위프트 3.0에 있습니다.

답변

1

NSDate Apple Documentation 참조 :

재단 프레임 워크에 대한 스위프트 오버레이가있는 NSDate 클래스에 다리 날짜 구조를 제공한다. 날짜 값 유형 은 NSDate 참조 유형과 동일한 기능을 제공하며 2는 Objective-C API와 상호 작용하는 Swift 코드에서 서로 바꿔서 사용할 수 있습니다. 이 동작은 Swift가 표준 문자열, 숫자 및 컬렉션 유형을 해당하는 Foundation 클래스에 연결하는 방법과 유사합니다. 당신이 timeIntervalSince 메소드 서명을 선택하면

, 그것은 func timeIntervalSince(_ anotherDate: Date) -> TimeInterval입니다 anotherDate 날짜 유형 (더 이상하지 NSDate) Date입니다 있습니다. 새 값 유형에 대한 자세한 내용은

, 가변성 및 기초 값 유형의 this proposal을 확인, 같은 새 값 유형의 무리가 :있는 NSData, NSMutableData은 -> ​​ 데이터, NSIndexPath -> IndexPath, NSNotification - > 알림 ...

관련 문제