2015-07-30 3 views
3

Как быть новым для SwiftXml сериализации/десериализации класса в 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 
     } 
    } 

} 

Я искал много, но не попадались любой движок XML Serialization для Swift.

+0

Есть ли какая-то особая причина, по которой вам необходимо сериализовать его в XML (может быть, отправлен на сервер?) Или просто хотите сохранить его на диск, чтобы вы могли загрузить его снова? Если да, то я дам вам способ, как это сделать. –

+0

Это потому, что у нас есть приложение для Windows 8, где нам нужно отправить файл xml через IOS. Мы не можем использовать Json .. –

+0

Да, да, именно это было бы здорово :) –

ответ

5

XML сериализации

Для XML-сериализации, я предлагаю вам использовать следующие библиотеки:

https://github.com/skjolber/xswi

Поскольку использование довольно легко, но хорошо документирована, я не буду копировать его здесь, вместо этого вы можете просто использовать примеры, которые они предоставляют. Так как ваш класс очень прост, достаточно решения. AFAIK нет библиотеки, которая обеспечивает автоматическую сериализацию, потому что она не используется в iOS. Основные данные предоставляют вам возможность сериализации в виде XML, но это очень проблематично и в основном не используется для того, что вы хотите.

NSCoding/NSKeyedArchiver

Если вам нужно просто сохранить класс на диске и загрузить его снова, есть лучший вариант, и что является использование NSKeyedArchiver/NSCoding протокола. Опять же, there is great article о том, как использовать его с обширными примерами, поэтому только основы:

  • Вы расширяете свой класс, так что соответствует NSCoding протоколу
  • Пишешь реализация двух методов - encodeWithCoder: и initWithDecoder:
  • You использовать NSKeyedArchiver архивировать ваш класс
  • вы пишете NSData, что вы сохраните на диск (и наоборот)

Надеюсь, это поможет!

+0

Я приму свой ответ, как только я выясню seriliaztion .. –

+0

Решили ли вы свою проблему? –

Смежные вопросы