无法推断通用参数“值”
Posted
技术标签:
【中文标题】无法推断通用参数“值”【英文标题】:Generic parameter 'Value' could not be inferred 【发布时间】:2018-09-10 03:57:36 【问题描述】:我正在尝试使用 NSCoder 制作数据存储,出于某种奇怪的原因,它向我显示了此错误,我尝试使用 .encode
关键字,请帮助我了解我做错了什么..
let encoder = PropertyListEncoder()
do
let data = try encoder.encode(self.itemArray) // <--- showing error here
catch
【问题讨论】:
我认为这与itemArray
未正确初始化有关,你看我已将数组设为数据模型 var itemArray = [CellItemReg]()
,该类有一个 Bool 和 String 变量,怎么办我解决这个?!
【参考方案1】:
没关系,我找到了问题!如果你们在使数组获取类中指定的数据时遇到同样的问题,则需要将类设为“可编码”,即
import Foundation
class CellItemReg : Encodable // <-- 'Encodable'
var done : Bool = false
var title : String = ""
【讨论】:
【参考方案2】:这已在 Swift ios 中为我修复。 在您尝试编码的类中继承 Codable。 在您的情况下,
let encoder = PropertyListEncoder()
do
let data = try encoder.encode(self.itemArray) // <--- showing error here
catch
假设 itemArray 是名为“Item”的类的数组。那么你的“项目”需要在 swift 中继承 Codable。 如下所示。
import Foundation
class Item: Codable
var id: Int!
一切顺利!
【讨论】:
以上是关于无法推断通用参数“值”的主要内容,如果未能解决你的问题,请参考以下文章