Swift中类的XML序列化/反序列化

5

作为一个对Swift不熟悉的人

我不知道如何将一个类序列化为XML格式

Class Employee
{
    var mName : String = ""
    var Name : String
        {
        get
        {
            return mName
        }
        set
        {
            mName = newValue
        }
    }
    var mDesingation : String = ""
    var Desingation: String
        {
        get
        {
            return mDesingation 
        }
        set
        {
            mDesingation = newValue
        }
    }

}

我已经搜索了很多,但是还没有找到适用于Swift的XML序列化引擎。


你需要将它序列化为XML(可能是发送到服务器),还是只是想将其保存到磁盘以便再次加载?如果是后者,我可以告诉你如何做。 - Jiri Trecak
这是因为我们有一个Windows 8应用程序,需要通过IOS发送XML文件。我们不能使用Json。 - Vivek Saurav
是的,没错,那将会很棒 :) - Vivek Saurav
1个回答

5

XML序列化

对于XML序列化,我建议您使用以下库:

https://github.com/skjolber/xswi

由于使用方法非常简单且有很好的文档,因此我不会在此处复制它,而是您可以使用他们提供的示例。因为您的类非常简单,所以这是一个足够的解决方案。据我所知,在iOS上没有提供自动序列化的库,因为它在iOS上并不常用。 Core Data 提供将数据序列化为XML的选项,但这是极具问题的,大多数情况下不能满足您想要的。

NSCoding / NSKeyedArchiver

如果您只需要将类存储在磁盘上并再次加载它,那么有更好的选择,即使用NSKeyedArchiver / NSCoding协议。同样,这里有一篇非常棒的文章,介绍了如何使用带有广泛示例的内容,因此以下是基础知识:

  • 您扩展您的类,使其符合NSCoding协议
  • 您编写两个方法的实现- encodeWithCoder:initWithDecoder:
  • 使用NSKeyedArchiver存档您的类
  • 您编写将要保存到磁盘的NSData(反之亦然)

希望它有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接