
148
第 5 章
存储数据
游戏也是
App
,而
App
离不开数据。无论是游戏所需的资源,还是游戏的存档文件,
最终都需要将数据保存到存储芯片,后者构成了
iOS
设备上的存储系统。
本章,我们将学习如何将数据转变成可存储的数据,如何使用
iCloud
,如何在加载
资源时不会对游戏的其他部分造成阻塞等等。
5.1
保存游戏状态
问题
我们必须保存游戏对象的状态,同时也能从磁盘上加载它们。
解决方案
让你想保存和加载对象去实现
Codable
协议,并通过
Encoder
和
Decoder
类将你想
保存
/
载入的对象转换成原始类型的数据。
例如,假设你想保存
/
加载游戏。要保存的游戏主要包括三样东西:玩家所在关卡,
玩家名字,以及他在游戏中达到的成就。这个成就可以用一个枚举来表示:
//
玩家能够达到的成就
enum Achievements : String, Codable {
case startedPlaying
case finishedGameInTenMinutes