2015-07-13 69 views
0

我正在使用UIKit在Swift中开发游戏。每次游戏关闭并打开时,我都想保存/加载更改。数据需要保存/加载的是包含String和Int的类。如何使用Swift在基于UIKit的游戏中保存/加载游戏状态

Sample类:

class UserData { 
    var username: String = String() 
    var gamepoints: String = String() 
    var items: [UserItem] = [] 
} 

class UserItem { 
    var name: String = String() 
    var quantity: Int = 0 
    var price: Int = 0 
} 

我只需要保存类似于那些上述类。我应该使用什么方法?当游戏关闭并再次打开时,如何检索UserData类实例的更新值?有没有一种方法可以将此类值保存到某处并在重新启动应用程序后对其进行初始化?

回答

3

答案是肯定的。你会想看看NSCodingNSKeyedArchiver。基本上你需要做以下步骤:

  1. 有你UserDataUserItem类实现NSCoding协议。
  2. 把它们写磁盘时,您需要使用NSKeyedArchiver
  3. 从磁盘中读取它们,当你需要使用NSKeyedUnarchiver

结帐这篇文章吧:http://nshipster.com/nscoding/

但是你有很多其他选择存储用户数据 - 您还可以使用NSUserDefaults,CoreData,SQLite等存储用户数据。您的问题确实很广泛,并且不知道游戏的具体细节:需要多长时间读取/输出这些数据,多少时间有,你正在使用什么数据结构收集它......很难给你一个明确的答案。

+0

谢谢,现在我清楚了 – dorsalfin