iOS XML编写器类

时间:2010-10-19 15:24:47

标签: iphone objective-c xml

我想创建一个使用关卡系统的游戏。所以我想存储我的关卡并且能够在游戏中更改它们(以保存状态)。所以我决定使用XML来存储关卡。我发现NSXmlParser类用于从XML读取,但我找不到保存级别状态的编写器。在我的游戏中,关卡状态和关卡非常相似(我有很多可移动的对象),所以我不想存储与它所属的关卡分开的关卡状态数据。问题是我无法找到一种方法来轻松修改iPhone上的XML文件。也许我正在使用糟糕的方法。

4 个答案:

答案 0 :(得分:5)

如果您将数据投放到NSDictionary,您可以(有警告):

[myDictionary writeToFile:pathToPlist atomically:YES];

答案 1 :(得分:5)

尝试开源XML stream writer for iOS

  • 用Objective-C编写,单个.h。和.m文件
  • 一个@protocol用于名称空间支持,一个用于不用

示例:

// allocate serializer
XMLWriter* xmlWriter = [[XMLWriter alloc]init];

// start writing XML elements
[xmlWriter writeStartElement:@"Root"];
[xmlWriter writeCharacters:@"Text content for root element"];
[xmlWriter writeEndElement];

// get the resulting XML string
NSString* xml = [xmlWriter toString];

这将生成以下XML字符串:

<Root>Text content for root element</Root>

答案 2 :(得分:5)

我建议使用KissXML。作者以与您类似的情况开始,并围绕libxml创建了一个NSXML兼容的API包装器。他在博客上讨论了here的选项和决定。

答案 3 :(得分:3)

您可以使用C libary libxml2来读写XML。这是一个快速介绍:Cocoa Samurai: Getting Some XML Love with libXML2

但是,您是否考虑过使用CoreData或实施NSCoding协议? NSCoding会更容易添加到现有的类中。