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

标签 ios iphone 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()

另一种解决方案是使用所有方法创建日期扩展,并从每个方法调用 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/

相关文章:

ios - iOS 中使用 URL 方案的应用程序间通信

iphone - 核心动画警告 : "uncommitted CATransaction"

iphone - iOS 视网膜显示 : images double size

ios - 有没有更有效的方法来检测 UIScrollView 偏移量?

swift - NSLayoutConstraints : How do you correctly center a subview within a view?

ios - 根据表格 View 单元格中的内容更改 uilabel 高度

ios - CGPathRef 与 CGMutablePathRef

iphone - coreplot 2 图表中的图

iphone - UITableViewCell 选择器 setSelected :animated: gets called many times?

swift - 如何使用 SwiftUI 关闭多个 View