2016-08-22 2 views
1

Я использую SwiftyJSON для разбора JSON данных. Проблема в том, что я не могу преобразовать данные, которые он мне дал NSArray. Он говорит следующее сообщение об ошибке:Swift: Как преобразовать тип JSON в NSArray?

Cannot convert value of type 'JSON' to type 'NSArray' in coercion

Вот код, я использую:

if let file = NSBundle(forClass:AppDelegate.self).pathForResource("world", ofType: "json") { 
    let data = NSData(contentsOfFile: file)! 

    var worldDataGenJSON = JSON(data:data) 
    var worldDataGen = worldDataGenJSON as NSArray 
} else { 
    //error 
} 

Мне нужно преобразовать тип JSON в NSArray

Edit: Другой пост не помогло моим ситуация. Он говорит мне ввести тот же код, который я уже использую. Он по-прежнему возвращает ту же ошибку.

+2

Зачем вам нужно использовать 'as NSArray'? –

+0

Возможный дубликат [для Parse JSON для NSArray в Swift] (http://stackoverflow.com/questions/34813387/to-parse-json-to-nsarray-in-swift) – Roecrew

ответ

0

Прежде всего не используйте NSArray в Swift потому, что ему не хватает информации о типе.

SwiftyJSON имеет три свойства для получения массива из объекта JSON.

  • array: возвращает [JSON]?
  • arrayValue: возвращает [JSON]
  • arrayObject: возвращает [AnyObject]?

Ваш код слишком неоднозначны, чтобы узнать, какой из них является наиболее подходящим.

+0

Спасибо, я думаю, это сработает. – LegoCreeperLeaf

+0

Почему я не могу его подстроить? – LegoCreeperLeaf

+0

'NSArray' не любит информацию типа больше или меньше, чем' [AnyObject] '. Я согласен с общим настроем не использовать 'NSArray', но мы должны четко объяснять причины. – nhgrif

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