【问题标题】:how to save/load game state in UIKit based Game using Swift如何使用 Swift 在基于 UIKit 的游戏中保存/加载游戏状态
【发布时间】:2015-07-13 13:10:57
【问题描述】:

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

示例类:

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 类实例的更新值?是否有一种方法可以将此类值保存到某个地方并在重新启动应用程序后对其进行初始化?

【问题讨论】:

    标签: ios swift uikit


    【解决方案1】:

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

    1. 让您的UserDataUserItem 类实现NSCoding 协议。
    2. 当你需要使用NSKeyedArchiver时将它们写入磁盘
    3. 当你需要使用NSKeyedUnarchiver时从磁盘读取它们

    查看这篇关于它的文章:http://nshipster.com/nscoding/

    但是,您还有许多其他选项来存储用户数据 - 您也可以使用 NSUserDefaults、CoreData、SQLite 等来存储用户数据。您的问题非常广泛,并且不知道您游戏的具体情况:多久需要读取/输出这些数据,有多少,你用什么数据结构来收集它……很难给你一个明确的正确答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      相关资源
      最近更新 更多