gpt4 book ai didi

ios - 如何在 swift 中使用 NSCoder 对字符进行编码?

转载 作者:行者123 更新时间:2023-11-28 07:00:10 26 4
gpt4 key购买 nike

喜欢

How do I encode enum using NSCoder in swift?

代码:

import Foundation

class Car: NSObject, NSCoding {
var bmw: Character
required init(coder decoder: NSCoder) {
bmw = (decoder.decodeObjectForKey("bmw") as? Character)!
}

func encodeWithCoder(encoder: NSCoder) {
encoder.encodeObject(bmw, forKey: "bmw")
}
}

Xcode 抛出一个错误:

无法使用类型为“(Characher, forKey: String)”的参数列表调用“encodeObject”

我应该如何处理 Character in swift?

最佳答案

错误的原因是,虽然 StringAnyObject 的子类型,但 Character 不是(因为字符不是对象).解决您的问题的方法可能如下:

class Car: NSObject {
var bmw: Character
required init(coder decoder: NSCoder) {
bmw = Character(decoder.decodeObjectForKey("bmw") as! String)
}

func encodeWithCoder(encoder: NSCoder) {
encoder.encodeObject(String(bmw), forKey: "bmw")
}
}

在这里,您在编码之前将字符转换为字符串,并在解码之后转换回字符。

关于ios - 如何在 swift 中使用 NSCoder 对字符进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32240450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com