ios - 如何在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)!
我有一个jsonString
as {}
。
如果我只确认 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 对象?
解决方案
推荐阅读
- java - 如何在 Java 应用程序中允许特殊字符,如破折号?
- c# - c# - 在列表中找到正确的元素
- c++ - 将 __fp16 转换为浮动无法链接到 Clang 9
- android - 当设备未处于配对模式时,通过蓝牙 LE 在 Android 上的连接失败,但使用 Linux 成功
- php - Directus 存储适配器 AWS S3 错误:无写入权限:
- sql - 如何根据 SQL 中的开始和结束日期聚合年月级别的度量?
- php - 等于或大于与 whereIn 或 laravel 中的数组
- javascript - 测试本地网页的速度
- html - Bootstrap 4 导航栏的汉堡扩展但不折叠
- sql - 如果 postgres 中的值为空白,则使用另一个字段值更新表字段