首页 > 解决方案 > 如何在Objective C中使用不是NSObject的可编码对象?

问题描述

我正在开发一个混合了 Objective C 和 Swift 的项目。

我有一些需要在 Objective C 中使用的 Codable 对象,但这些对象不是从NSObject. 如果我让它们继承NSObject自我无法使用转换为 json 字符串JSONEncoder

class Sample:NSObject, Codable
{

var name:String = "Lucien"
var data:[String:String] = ["token":"121bnkfjas"]

}
let sample = Sample()

   let jsonData =   try JSONEncoder().encode(sample)
   let jsonString = String(data: jsonData, encoding: .utf8)!

我有一个jsonStringas {}

如果我只确认 Codable 协议,它工作正常。

 class Sample:Codable
    {

    var name:String = "Lucien"
    var data:[String:String] = ["token":"121bnkfjas"]

    }
    let sample = Sample()

       let jsonData =   try JSONEncoder().encode(sample)
       let jsonString = String(data: jsonData, encoding: .utf8)!

这个 jsonString 是正确的。

如何在 Objective C 中只使用 Codable 对象?

标签: iosobjective-cswiftcodable

解决方案


推荐阅读