NSJSONСериализация данных json из словаря Swift, содержащего структуру в качестве значений

Я пытаюсь преобразовать быстрый словарь (который имеет String в качестве ключей и структуру в качестве значений) в данные json с помощью NSJSONSerialization. Но я получаю эту ошибку:

Cannot invoke 'dataWithJSONObject' with an argument list of type'([String : Vik.Version], options: NSJSONWritingOptions, error: nil)

Есть ли что-то, чего мне не хватает. любая помощь будет оценена.

Спасибо

Ниже приведен мой код.

final class Vik: NSObject {

    private struct Version {
       private var name: String
       private var filesToAdd = [String]()
       private var filesToRemove = [String]()

       init(name: String, filesToAdd: [String]?, filesToRemove: [String]?) {
          self.name = name

          if let filesToAdd = filesToAdd {
            self.filesToAdd = filesToAdd
          }

          if let filesToRemove = filesToRemove {
            self.filesToRemove = filesToRemove
          }
       }
    }
    ......
    ......
    ......

    private var changeLogDict = [String : Version]()

    private func addToDirectory() {
       .......
       .......
       let jsonData = NSJSONSerialization.dataWithJSONObject(self.changeLogDict, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
       .......
       .......
    }

}

person Vik Singh    schedule 02.06.2015    source источник


Ответы (1)


Я понял. Метод NSJSONSerialization.dataWithJSON принимает тип данных AnyObject. Словарь Swift - это структура, а не объект, и, следовательно, он жалуется. Следующая строка компилируется нормально

let jsonData = NSJSONSerialization.dataWithJSONObject(self.changeLogDict as NSDictionary, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
person Vik Singh    schedule 03.06.2015