6

私は 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 ソース コードを確認すると、クラスの型が見つからない場合にエラーが発生することがわかります。

誰かがこの問題の理由を説明するのを助けることができれば、それはありがたいです.

ありがとう!

4

1 に答える 1