Я очень новичок в iOS, перейдя с разработки Android.Сериализация класса Swift для JSON с использованием J2ObjC и библиотеки GSON
У нас есть Android-приложение, которое имеет несколько библиотек, которые мы используем J2ObjC перевести на Objective C.
Я постепенно доводя над библиотеками и до сих пор, так хорошо.
Однако после перевода библиотеки GSON Google, у меня есть вопрос, где, если я пытаюсь использовать переведенный метод toJsonWithId
я встречаю проблемы:
let gson = ComGoogleGsonGson()
let swiftTest = GsonSwiftTest()
swiftTest.name = "Ricky"
print(gson.toJsonWithId(swiftTest))
я получаю следующую ошибку:
libc++abi.dylib: terminating with uncaught exception of type JavaLangAssertionError
Далее он показывает:
Terminating app due to uncaught exception 'JavaLangAssertionError', reason: 'unknown Java type encoding'
Мой класс Swift:
import Foundation
@objc
public class GsonSwiftTest : NSObject {
var name:String?
}
Если я вместо этого использовать Objective класса C в моем Swift проекта, добавьте его в обводном заголовок и использовать Objective класса C это работает отлично.
Я считаю, что это недоразумение с моей стороны, но я не могу найти ответ о том, почему это не сработает. Проверка исходного кода J2ObjC показывает, что ошибка возникает, когда тип класса не найден.
Если кто-нибудь может объяснить причины этой проблемы, было бы полезно.
Спасибо!
Спасибо Том, я знал о NSJSONSerialization, я просто хотел понять причину неудачи, которую вы теперь объяснили. Спасибо за вашу тяжелую работу в библиотеке. – Ricky