Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone游戏开发,用文件或sqlite保存状态?_Iphone_Objective C - Fatal编程技术网

iPhone游戏开发,用文件或sqlite保存状态?

iPhone游戏开发,用文件或sqlite保存状态?,iphone,objective-c,Iphone,Objective C,用于iphone游戏开发。大多数人如何保持状态?使用sqlite?或者某种文件 这个游戏是RPG类型的游戏。这取决于你想要什么。两者都是完全可以接受的。如果您的游戏状态非常复杂,那么使用文件可能会更简单(使用NSKeyedArchiver或其他工具对游戏状态进行编码)。然而,如果你有一个简单的游戏(玩家在这个位置处于这个级别),那么SQLite将是一个很好的选择 如果你想要最好的两个世界,你也可能想考虑使用CordaDa.如果你需要频繁地搜索/排序你的游戏数据,或者你通常只在一次加载数据的一个子

用于iphone游戏开发。大多数人如何保持状态?使用sqlite?或者某种文件


这个游戏是RPG类型的游戏。

这取决于你想要什么。两者都是完全可以接受的。如果您的游戏状态非常复杂,那么使用文件可能会更简单(使用NSKeyedArchiver或其他工具对游戏状态进行编码)。然而,如果你有一个简单的游戏(玩家在这个位置处于这个级别),那么SQLite将是一个很好的选择


如果你想要最好的两个世界,你也可能想考虑使用CordaDa.

如果你需要频繁地搜索/排序你的游戏数据,或者你通常只在一次加载数据的一个子集,那么你应该考虑SQLite。 如果您只需要将对象图存储到磁盘并在启动时重新加载整个内容,请使用NSCoder将游戏对象归档到文件中(默认情况下,它存储为二进制plist)


如果您需要与服务器或其他系统交换游戏数据,您可以查看XML或JSON之类的序列化格式。

对于RPG,您可能需要搜索并从大型数据集中检索元素,作为游戏本身内部功能的一部分,因此您应该使用SQLite(如果目标是OS 2.x)或者核心数据(如果目标是OS3.x)。因为你将使用一个数据库来加载你的游戏资产,所以使用它来保存状态才有意义。同样,对于RPG,您可能会为游戏状态加载和保存大量数据,对于游戏状态,数据库将比普通数据文件更快

核心数据可以让您管理复杂的对象图,甚至比调优过的SQLite还要快,可以使用更少的内存,并且可以更容易地编码,但仅在iPhone OS 3.x上可用。如果您仍然希望以2.x为目标,SQLite将是一个不错的选择

根据我的经验,除了最简单的需要数据持久性的情况外,核心数据和SQLite都比普通文件快得多