【发布时间】:2021-02-02 09:02:59
【问题描述】:
我有课
class shortcut: NSObject {
@objc var type: String
@objc var value: String
@objc var raw: UInt8
init( ...)
}
}
和一个结构
struct setting: Codable {
var type: String
var value: String
var raw: Int
}
为了将一组快捷方式存储到 .plist 中,我首先将它们映射到一组设置,如下所示:
let settings:[setting] = shortcuts.map({setting(type: $0.type, value: $0.value, raw: Int($0.raw))})
这工作正常。然后我对其进行编码,保存它。在回来的路上,我阅读并解码它,但是当我尝试将 [设置] 映射回 [快捷方式] 时,如下所示:
let shortcuts:[shortcut] = settings.map({shortcut(type: $0.type, value: $0.value, raw: UInt8($0.raw))})
该行被标记为错误,声称
“[setting]”类型的值没有成员“type”
还有更多
我的逻辑哪里出错了?
【问题讨论】:
-
settings是什么类型?是可选的吗? -
第二行中的
settings似乎是[[setting]]?在申请之前有一个“修复”,或者在map()之前需要一个flatMap()。不相关,但是,以大写开头命名您的类/结构。 -
@sweeper:我将设置声明为“var settings:[setting]?”将其更改为“var settings = [setting]()
-
@sweeper:仍然,错误消息对我来说没有意义
-
Optional<Wrapped>上有一个map方法。你是这么叫的。
标签: swift class struct mapping