我为 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()
另一种解决方案是使用所有方法创建日期扩展,并从每个方法调用 obj C 方法。
我想知道是否有办法告诉编译器自动生成 swift Date 扩展(不是 NSDate)。 喜欢:
@interface NSDate (KDApi) NS_SWIFT_NAME(Date);
我试过了,没用。
最佳答案
这是 swift 3.0 的预期行为。 Apple 的开发人员确认 NSDate 和 Date 是两种不同的类型。此外,从 NSDate 到 Date 扩展的类别没有桥接,这与 NSString 和 String 的情况不同,是的。
关于ios - 我的类别 NSDate+Api 现在不适用于 Swift 中的 Date 类(迁移到 Swift 3 和 Swift 互操作性之后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39597310/