我对 iOS 很陌生,从 Android 开发开始。
我们有一个 Android 应用程序,它有几个库,我们使用 J2ObjC 将其转换为 Objective C。
我一直在逐渐带来图书馆,到目前为止,一切都很好。
但是,在翻译 Google 的 GSON 库后,我遇到了一个问题,如果我尝试使用翻译后的方法toJsonWithId
,我会遇到问题:
let gson = ComGoogleGsonGson()
let swiftTest = GsonSwiftTest()
swiftTest.name = "Ricky"
print(gson.toJsonWithId(swiftTest))
我收到以下错误:
libc++abi.dylib:以 JavaLangAssertionError 类型的未捕获异常终止
它进一步表明:
由于未捕获的异常“JavaLangAssertionError”而终止应用程序,原因:“未知的 Java 类型编码”
我的 Swift 课程是:
import Foundation
@objc
public class GsonSwiftTest : NSObject {
var name:String?
}
如果我改为在我的 Swift 项目中使用 Objective C 类,请将其添加到桥接头并使用 Objective C 类,它可以正常工作。
我相信这是我的一个误解,但我找不到为什么这不起作用的答案。检查 J2ObjC 源代码显示当找不到类的类型时会引发错误。
如果有人可以帮助解释此问题的原因,将不胜感激。
谢谢!