2016-09-20 1 views
3

NSDate, NSString 용으로 작성된 모든 카테고리에 문제가 있습니다 ... The Migration to Swift 3 이제는 모든 NSDate 속성을 날짜로 변경하십시오 (신속한 파일에서). 지금 Swift에서 Date 유형의 속성에서 내 NSDate + 추가 카테고리 메소드를 호출 할 수 없습니다.내 범주 NSDate + API가 Swift의 Date 클래스에 대해 작동하지 않습니다. (Swift 3 및 Swift 상호 운용성으로 마이그레이션 한 후)

그래서 예를 들어 나는

@interface NSDate (Additions) 

- (BOOL)isTimedOut; 

@end 

의 Obj C에서이 범주를 그리고 신속한 파일이 들어 있습니다

First is to cast so it would be 
let isTimedOut = (date as NSDate).isTimedOut() 
: 지금은 두 가지 해결책을 마련 할 때까지

let date: Date = Date.init() 
let isTimedOut = date.isTimedOut() 

또 다른 해결책은 모든 메서드로 Date 확장을 만들고 각 메서드에서 obj C 메서드를 호출하는 것입니다.

자동으로 빠른 날짜 확장 (NSDate가 아님)을 자동으로 생성하는 컴파일러를 어떻게 든 말할 수있는 방법이 있는지 알고 싶습니다. Like :

@interface NSDate (KDApi) NS_SWIFT_NAME(Date); 

나는 그것을 시도하고 그것은 작동하지 않았다.

답변

1

이것은 swift 3.0의 의도 된 동작입니다. 애플의 개발자들이이를 확인했다. NSDate와 Date는 너무 다른 유형이며 NSDate에서 Date 확장까지의 (카테고리)는 연결되지 않습니다. 하지만 NSString 및 문자열 예의 경우.

관련 문제