我为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扩展的类别没有桥接,这是肯定的.