ios - 将 XML 写入项目(iOS、Xcode 4)

标签 ios xml

我认为我的问题没有解决方案,但我希望有人可以分享过去经验的创造性工作。我已经为我最新的 iPhone/iPad 游戏创建了一个 3D 关卡编辑器,我正处于最后阶段,我需要将 map 写成我设计的 XML 文件格式。

我正在使用 KISSXML 作为我的 XML 库进行解析,并且我准备将它的使用扩展到写作。我的问题是:是否可以以某种方式写入我可以查看然后存储在项目中的位置?对于我最初创建的 20-30 个 map 文件,我想将它们作为资源直接导入到项目中,以后也可以将它们作为文本文件进行编辑……我不想在这个阶段将它们存储为应用程序资源(但是我听说您不能从应用程序写入项目的资源结构?)。是否有一些创造性的方法甚至可以将 XML 发送给我自己或将其写在我可以轻松检索的位置?当我将编辑器扩展为玩家可用的工具时,写入应用程序目录会很棒 - 但现在,这不是我要找的。

任何建议或提示都会很棒!

这是我目前用来写的片段。我想一个更简单的问题是:这是去哪儿了?它是我可以在我的应用程序之外访问的地方吗?有什么方法可以编写它以便我更容易访问它吗?

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?这不是我的首选解决方案,但现在可能必须这样做。

最佳答案

据我了解,您想检查您的应用创建的文件。我想到了几种可能的解决方案。你可以

  1. 通过设置 UIFileSharingEnabled 启用 Itunes 文件共享应用程序 info.plist 中的属性。
  2. 实现 Dropbox
  3. 让您的应用将文件发布到本地网络中的网络服务器。

选项 1 可能是最容易设置的,但您必须点击几下才能获取数据。 如果您有一个正在运行的网络服务器,我可能会选择选项 3。

关于ios - 将 XML 写入项目(iOS、Xcode 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944581/

相关文章:

iOS 将视频作为下载数据播放

javascript - 如何在html页面中显示xml数据?

python - 在哪里找到python-2.6.0-8.9.28的xml.dom python包,我有一个Linux版本的suse/x86_64版本

java - 尝试了解 Android 中的 XML Pull 解析器 - Java

java - Android:使用findViewById时需要引用 View ?

iOS - 如何在使用 cocoapods 开发过程中管理框架的依赖关系?

ios - 在 deleteItemsAtIndexPaths 上的 UICollectionView 中动画 contentOffset 变化

ios - Swift MVC : Having viewController observe Model property, 在属性更改时更新 View

ios - 在 Xcode for iOS 应用程序中使用 Swift 绘制性能 UIGraphicsBeginImageContextWithOptions 比例因子

c - 从 XML 文件中提取数据