作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
喜欢
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?
最佳答案
错误的原因是,虽然 String
是 AnyObject
的子类型,但 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/
我是一名优秀的程序员,十分优秀!