Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.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游戏保存_Iphone_Objective C - Fatal编程技术网

iPhone游戏保存

iPhone游戏保存,iphone,objective-c,Iphone,Objective C,如何在iPhone游戏中保存游戏状态?我都在字典里。有人说使用NSUserDefaults,但这似乎是针对音量之类的东西。我找不到任何使用游戏保存的官方示例代码。苹果公司保存游戏状态的方法是什么?视情况而定NSUserDefaults对于一些小事情来说是可以的,但是对于更大的事情,您可能需要查看CoreData。如果您使用Core数据管理所有状态,那么您可以免费保存和加载。这就是大多数iPhone应用程序用作数据存储的原因 从NSDictionary到核心数据的转换非常简单,但您需要了解核心数据

如何在iPhone游戏中保存游戏状态?我都在字典里。有人说使用NSUserDefaults,但这似乎是针对音量之类的东西。我找不到任何使用游戏保存的官方示例代码。苹果公司保存游戏状态的方法是什么?

视情况而定<代码>NSUserDefaults对于一些小事情来说是可以的,但是对于更大的事情,您可能需要查看CoreData。

如果您使用Core数据管理所有状态,那么您可以免费保存和加载。这就是大多数iPhone应用程序用作数据存储的原因

从NSDictionary到核心数据的转换非常简单,但您需要了解核心数据是如何工作的,并定义您的方案


NSUserDefaults不是用来保存游戏状态之类的东西,而是用来保存设置之类的东西。

存档用于在IOS中保存对象图。您可以通过存档来检索完整的已保存状态。

还有一种比
NSUserDefaults
更灵活,但不如CoreData强大。

如果您只想将dict保存为文档文件夹中的列表,类似这样的方法可以工作:

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString* documentDir = [documentPaths objectAtIndex:0];
    NSString * savePath = [documentDir stringByAppendingPathComponent:@"save.plist"];
    [dict writeToFile: savePath atomically: YES];

这个有样品吗?我的问题不是序列化数据,我已经可以将其表示为字符串,问题是保存它的位置。示例如下:-如果您已经序列化了数据,那么您可能太过困难,无法获得有价值的核心数据。我不能回答那个问题。但到目前为止,这是从零开始做事的正确方式。而且核心数据是不会被转移到任何地方的,它是OSX和iOS技术,所以拥有它是一项很好的技能。您需要绘制数据的模式,然后使用托管对象图与所有数据交互。但是,如果其他应用程序希望使用文件名save.plist怎么办?它将崩溃,burnApps无法看到彼此的文件。它们使用单独的物理位置这有点令人困惑,在Mac上,文档的目录是iOS中的~/Documents,它是/Applications/someapplicationIdentifier/Documents,请查看~/Library/Application Support/iPhone Simulator/Someversion+1了解plists。我用它们来存储客户信息,比CoreData快。