当 Swift 的结构体遇上 NSCoding

昨天在写一个 Model,需要用到 NSCoding 序列化,之前用 Class 是没问题的,但换到Struct 就歇菜了,NSCoding 并不支持 Swift 的结构体。 放 🐶 一搜,找到两种解决方法,这里总结一下: 方法一 为 Struct 增加一个 HelperClass 属性成员(Class),让后让它遵守 »

在 Swift 结构体中使用 Mutating 函数的最佳时机

这是一篇译文,英文原文链接 我认为关于 Swift 最棒的一个特性就是:在这门语言构建的工程中可以使用大量的不可变对象。这种特性使我们的代码更加清晰,也更加安全(如果你还对此存疑,强烈推荐观看这篇演讲) 但当我们真正需要去做一些改变时,又该怎么处理呢? 函数方式 举个例子,假如存在一个井字棋的游戏棋盘,我需要修改棋盘上各个点的状态... struct Position { let coordinate: Coordinate let state: State enum State: »