2016-02-16 4 views
1

Я импортирую массив из синтаксического анализа, и я хочу добавить этот массив в массив массивов, но приложение сработает, когда пытается добавить импортированный массив. Почему это происходит и как я могу это исправить? Ошибка при сбое: Thread 1: EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP, subcode=0x0 Я прокомментировал строку append, и она не разбилась, поэтому должна быть эта строка.Почему приложение разбивается, когда я пытаюсь добавить массив?

var animalarray: [[String]] = []  

let query = PFQuery(className: "animals") 

    query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in 
     if error == nil{ 

        for object in objects!{ 

         if let animalss = object["CoordinateTest"]{ 
          print("coord \(animalss)") 
          self.animalarray.append(animalss as! [String])//crashes here 

          } 
        } 
      } 
     } 
+0

, что появляется в журнале с 'печати ("коорд \ (animalss)")' линии? –

+0

'coord (« dog »,« cat »)' – stackerleet

+0

Если бы я должен был догадаться, «животные» на самом деле не представляют собой массив строк, и ваше отбрасывание силы вызывает крушение. – EmilioPelaez

ответ

-2

Вы должны создать метод, который извлекает данные, и использовать запросы, чтобы указать, что вы хотите. Также вы должны создать временную переменную для хранения полученных данных и добавить эту переменную в массив.

Ex.)

var animalsArray: [String] = [] 

func retrieveData(){ 
     let query = PFQuery(className: "animals") 
     query.whereKey("Key", equalTo: object) 
     query.orderByDescending("createdAt") 
     query.findObjectsInBackgroundWithBlock { 
      (object:[PFObject]?, error:NSError?) -> Void in 

    if (error != nil){ 
     print(error?.localizedDescription, error?.userInfo) 
    } else { 

     for temp: PFObject in object! { 
      let animals: String  = temp["CoordinateTest"]   as! String 

      self.animalsArray.append(animals!) 
     } 
     } 
    } 
} 
Смежные вопросы