Sono molto nuovo per iOS, passando dallo sviluppo Android.Serializzazione di una classe Swift in JSON utilizzando la libreria J2ObjC e GSON
Abbiamo un'applicazione Android che ha diverse librerie che stiamo usando J2ObjC di tradurre in Objective C.
Sono stato a poco a poco portando oltre le librerie e così qui, tutto bene.
Tuttavia, dopo traducendo biblioteca GSON di Google Ho un problema per cui se provo e utilizzare il metodo tradotto toJsonWithId
mi imbatto in problemi:
let gson = ComGoogleGsonGson()
let swiftTest = GsonSwiftTest()
swiftTest.name = "Ricky"
print(gson.toJsonWithId(swiftTest))
ricevo il seguente errore:
libc++abi.dylib: terminating with uncaught exception of type JavaLangAssertionError
Inoltre mostra:
Terminating app due to uncaught exception 'JavaLangAssertionError', reason: 'unknown Java type encoding'
La mia classe Swift è:
import Foundation
@objc
public class GsonSwiftTest : NSObject {
var name:String?
}
Se io invece uso una classe Objective C nel mio progetto Swift, aggiungo all'intestazione bridging e utilizzare la classe C Obiettivo funziona benissimo.
Credo che questo sia un malinteso da parte mia, ma non riesco a trovare la risposta sul perché questo non funzionerà. Il controllo del codice sorgente di J2ObjC mostra che l'errore viene generato quando non è possibile trovare il tipo di classe.
Se qualcuno potrebbe aiutare a spiegare le ragioni di questo problema, sarebbe apprezzato.
Grazie!
Grazie Tom, ero a conoscenza di NSJSONSerialization, volevo solo capire il ragionamento per l'errore, che ora hai spiegato. Grazie per il tuo duro lavoro in biblioteca. – Ricky