私は iOS を初めて使用し、Android 開発から移行しました。
J2ObjC を使用して Objective C に変換するいくつかのライブラリを持つ Android アプリケーションがあります。
私は徐々にライブラリを引き継いでいますが、これまでのところとても良いです。
ただし、Google の GSON ライブラリを翻訳した後、翻訳されたメソッドtoJsonWithId
を使用しようとすると問題が発生するという問題があります。
let gson = ComGoogleGsonGson()
let swiftTest = GsonSwiftTest()
swiftTest.name = "Ricky"
print(gson.toJsonWithId(swiftTest))
次のエラーが表示されます。
libc++abi.dylib: タイプ JavaLangAssertionError のキャッチされない例外で終了します
さらに、次のことを示しています。
キャッチされない例外 'JavaLangAssertionError' が原因でアプリを終了しています。理由: 'unknown Java type encoding'
私のSwiftクラスは次のとおりです。
import Foundation
@objc
public class GsonSwiftTest : NSObject {
var name:String?
}
代わりに Swift プロジェクトで Objective C クラスを使用する場合は、それをブリッジング ヘッダーに追加し、Objective C クラスを使用すると問題なく動作します。
これは私の誤解だと思いますが、なぜこれが機能しないのかについての答えが見つかりません。J2ObjC ソース コードを確認すると、クラスの型が見つからない場合にエラーが発生することがわかります。
誰かがこの問題の理由を説明するのを助けることができれば、それはありがたいです.
ありがとう!