小编JoG*_*oFo的帖子

无法使用Xcode 10.2中的Cocoapods分解超类

移至Xcode 10.2后,在运行我的应用程序时出现错误崩溃failed to demangle superclass of MyClass from mangled name MySuperClass

当我尝试创建MyClass实例时发生崩溃。我正在使用CocoaPods 1.6.1,但尚未升级到Swift5。有问题的类在Pod内定义,并且是定义其他Pod的类的子类(列为第一个Pod的子依赖项)。

增加了复杂性(不确定是否相关)的是,超类采用了泛型,而子类定义了具体类型,而不采用了泛型。即

// Inside Pod B:
open class MySuperClass<DataType: Decodable> { ... }

// Inside Pod A:
open class MySubClass: MySuperClass<AConcreteStructConformingToCodable> { ... }

// Inside my project:
let myClass = MySubClass()
Run Code Online (Sandbox Code Playgroud)

我尝试覆盖Pod构建设置,以在不进行任何优化的情况下进行行为优化而无需进行优化。

xcode ios cocoapods swift

12
推荐指数
1
解决办法
1165
查看次数

Swift 3.0中的Date.copy()

由于切换到Swift 3.0,并且随着NSDate更改为Date,该类不再符合NSCopying协议.

在Swift 2中,这是有效的:

let newDate = oldDate.copy()
Run Code Online (Sandbox Code Playgroud)

但现在返回编译器错误.

在这种情况下,复制Date对象的最佳方法是什么?

let newDate = Date(timeIntervalSince1970: oldDate.timeIntervalSince1970)
Run Code Online (Sandbox Code Playgroud)

这样就可以了,但它看起来并不特别优雅.并且它可能(理论上)容易失去精度,因为TimeInterval是一个Double(我们无法确认Date对象内部使用 - 或者总是使用 - 一个Double).

nscopying ios swift

4
推荐指数
1
解决办法
1221
查看次数

标签 统计

ios ×2

swift ×2

cocoapods ×1

nscopying ×1

xcode ×1