
166
|
第
5
章
}
}
func endGame() {
//
当游戏结束,金币数清零,但钻石数不清零
gold = 0
}
}
讨论
在这个解决方案中,
gems
属性将它的值保存到
UserDefaults
系统,而不是简单地
放到内存里(而
gold
属性是放到内存里的)。对于其他对象来说,可能会这样使
用这个属性:
let currency = CurrencyManager()
currency.gold = 45
currency.gems = 21
currency.endGame()
一旦数据被保存到
UserDefaults
,它会在
App
多次运行中保持存在。也就是说,
哪怕是应用程序退出后,有的玩家就喜欢这样干,但不管怎么样,钻石数仍然是之
前保存的值。注意,保存在用户
Defaults
系统中的数据是可以被玩家修改的,这
样也是有可能作弊的。
5.10
保存到
CloudKit
问题
你想将游戏数据保存到
CloudKit
,即苹果的云存储方案。
解决方案
要使用
iCloud
,你首先需要开启
App
的
iCloud
能力,请参考问题
5.3
中所说的步骤。
然后你必须单独为项目配置
CloudKit
。在
iCloud
设置中,勾选
CloudKit
,
Xcode
会为将你的
APP
的
iCloud
容器设置为
CloudKit
。