【问题标题】: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 变量,怎么办我解决这个?!

标签: xcode swift4


【解决方案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!
    }
    

    一切顺利!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      相关资源
      最近更新 更多