ios – 我的类别NSDate Api现在不适用于Swift中的Date类(迁移到Swift 3和Swift互操作性之后)

我为NSDate,NSString编写的所有类别都有问题…

迁移到
Swift 3确实将所有NSDate属性更改为Date(在swift文件中).现在

我无法从Swift中Date类型的属性调用我的NSDate Additions类别方法.

例如,我在Obj C中有这个类别

@interface NSDate (Additions)

- (BOOL)isTimedOut;

@end

我有swift文件包含:

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

到现在为止,我想出了两个解决方案:

First is to cast so it would be 
let isTimedOut = (date as NSDate).isTimedOut()

另一种解决方案是使用所有方法创建Date扩展,并从每个方法调用obj C方法.

我想知道是否有办法以某种方式说出编译器自动生成swift Date扩展(不是NSDate).
喜欢:

@interface NSDate (KDApi) NS_SWIFT_NAME(Date);

我尝试过它并没有用.

最佳答案 这是swift 3.0的预期行为. Apple的开发人员证实,NSDate和Date是两种不同的类型.此外,与NSString和String的情况不同,NSDate到Date扩展的类别没有桥接,这是肯定的.

点赞