如何使用objectiv-c编写xml并将其放置到NSData对象中
我一直在阅读苹果的ios文档堆,以及几乎每一个用xml处理的代码都需要使用xml创建一个文件数据或通过连接接收xml然后改变它。如何使用objectiv-c编写xml并将其放置到NSData对象中
我想知道是否有一种方法来创建一些xml ..也许在一个字符串中,然后将其转换为一个NSData对象..我知道如何将一个nssting传递到nsdata对象..那不是这是一个大问题..目前最痛苦的部分是如何创建自己的xml,而没有苹果说你需要的其他东西。文件或返回数据。
我目前还没有代码..我可能会做的是什么创建,可以接收一些信息,然后将它们传递到希望创建一个漂亮的XML字符串/数据对象的某些参数的方法..
如果你有任何示例代码,建议链接到体面的教程,这将是巨大的帮助:)
如果您指的是将Cocoa对象转换为XML,那么有许多库可供尝试。快速谷歌带来了WonderXML,我以前没有使用它,但它听起来像这样做你想要的。
如果你不关心确切的XML格式,你可以使用NSKeyedArchiver
或NSPropertyListSerialization
(如jtbandes写的),它可以将大多数Cocoa对象序列化为XML。如果您打算在其他某种环境或语言中阅读XML,我不会推荐这种方法。
您可以使用:
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
...写一个NSDictionary出到的.plist,这是与特定模式的XML文档。所有包含的对象都需要是NSData,NSDate,NSNumber,NSString,NSArray或NSDictionary的实例。
使用- (id)initWithContentsOfFile:(NSString *)path
将XML/plist读回字典。
iOS项目的info文件是属性列表/ plist。他们看起来像这样,当在文本编辑器中查看:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>App Name</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFiles</key>
<array>
<string>Icon.png</string>
<string>[email protected]</string>
<string>Icon-iPad.png</string>
<string>Icon-Small-50.png</string>
<string>Icon-Small.png</string>
<string>[email protected]</string>
</array>
</dict>
</plist>
好吧..冷静,我想我明白你的建议,我将不得不现在试一试。我会让你知道我是怎么走的。 – HurkNburkS 2012-02-28 01:56:24