我认为我的问题没有解决方案,但我希望有人可以分享过去经验的创造性工作。我已经为我最新的 iPhone/iPad 游戏创建了一个 3D 关卡编辑器,我正处于最后阶段,我需要将 map 写成我设计的 XML 文件格式。
我正在使用 KISSXML 作为我的 XML 库进行解析,并且我准备将它的使用扩展到写作。我的问题是:是否可以以某种方式写入我可以查看然后存储在项目中的位置?对于我最初创建的 20-30 个 map 文件,我想将它们作为资源直接导入到项目中,以后也可以将它们作为文本文件进行编辑……我不想在这个阶段将它们存储为应用程序资源(但是我听说您不能从应用程序写入项目的资源结构?)。是否有一些创造性的方法甚至可以将 XML 发送给我自己或将其写在我可以轻松检索的位置?当我将编辑器扩展为玩家可用的工具时,写入应用程序目录会很棒 - 但现在,这不是我要找的。p>
任何建议或提示都会很棒!
这是我目前用来写的片段。我想一个更简单的问题是:这是去哪儿了?它是我可以在我的应用程序之外访问的地方吗?有什么方法可以编写它以便我更容易访问它吗?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//make a file name to write the data to using the documents directory:
NSString *fileName = [NSString stringWithFormat:@"%@/xmlfile.xml", documentsDirectory];
DDXMLDocument* document = [[[DDXMLDocument alloc] initWithXMLString:@"<addresses/>" options:0 error:nil] autorelease];
DDXMLElement* root = [document rootElement];
[root addChild:[DDXMLNode elementWithName:@"address" stringValue:@"Some Address"]];
NSData *xmlData = [document XMLDataWithOptions:DDXMLNodePrettyPrint];
if (![xmlData writeToFile:fileName atomically:YES]) {
NSLog(@"Could not write document out...");
}
更新
使用以下行:
NSLog(@"Documents: %@", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]);
我可以通过 OSX 中的查找器访问我的文档目录并查看/编辑我编写的 XML 文件。这当然只有在我使用模拟器而不是设备生成文件时才有效。这看起来越来越像一个没有解决方案的问题......我想我可以将 XML 文件作为附件通过电子邮件发送给自己作为一个廉价的 hack?这不是我的首选解决方案,但现在可能必须这样做。
最佳答案
据我了解,您想检查您的应用创建的文件。我想到了几种可能的解决方案。你可以
- 通过设置 UIFileSharingEnabled 启用 Itunes 文件共享应用程序 info.plist 中的属性。
- 实现 Dropbox
- 让您的应用将文件发布到本地网络中的网络服务器。
选项 1 可能是最容易设置的,但您必须点击几下才能获取数据。 如果您有一个正在运行的网络服务器,我可能会选择选项 3。
关于ios - 将 XML 写入项目(iOS、Xcode 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944581/