2015-09-22 2 views
0

У меня есть запрос parse.com, написанный в swift, но он не позволяет запустить весь проект, но без него все в порядке. Ошибка я получаю Сбой команды из-за сигнала: ошибка сегментирования: 11. запрос ниже:Результат запроса parse вызывает ошибку

Код

 let ObjectIDQuery = PFQuery(className: "Restaurants") 
     ObjectIDQuery.whereKey("City", equalTo: CityName) 
     ObjectIDQuery.orderByDescending("RN") 
     ObjectIDQuery.findObjectsInBackgroundWithBlock({ 
      (objectsArray: [AnyObject]?, error: NSError?) -> Void in 

      var ObjectIDS = objectsArray as! [PFObject] 
      for i in 0..<ObjectIDS.count{ 
       self.name.append(ObjectIDS[i].valueForKey("Name") as! String) 
       self.rating.append(ObjectIDS[i].valueForKey("Rating") as! String) 
       self.phone.append(ObjectIDS[i].valueForKey("Number") as! String) 
       self.url.append(ObjectIDS[i].valueForKey("Website") as! String) 
       self.anp.append(ObjectIDS[i].valueForKey("ANP") as! String) 
       self.image.append(ObjectIDS[i].valueForKey("Image") as! String) 

       self.tableView.reloadData() 

      } 
     }) 

Пожалуйста, помогите

Edit: Я выяснил, проблема лежит в ObjectIDQuery.findObjectsInBackgroundWithBlock({

+0

Ваш код прекрасно работает (думал, что вы должны сделать некоторые оптимизаций, чтобы сделать его более удобным для чтения и после Swift конвенции). Эта ошибка может быть вызвана множеством разных вещей (fx http://stackoverflow.com/questions/26557581/command-failed-due-to-signal-segmentation-fault-11). Попробуйте удалить некоторые недавние изменения, внесенные в проект, и посмотреть, можно ли их снова скомпилировать. В противном случае попробуйте обновить свой вопрос с помощью большего количества кода и ваших журналов. – Kumuluzz

ответ

2

Если вы используете новейшие Parse SDK и Swift 2, изменилась сигнатура метода для PFQuery.findObjectsInBackgroundWithBlock. См: https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/280

Заменить (objectsArray: [AnyObject]?, error: NSError?) -> Void in с (objectsArray: [PFObject]?, error: NSError?) -> Void in

+0

Привет, спасибо за помощь. Теперь я получаю эту ошибку «Downcast from» [PFObject]? to '[PFObject]' только разворачивает опции; вы хотели использовать '!'? 'в строке' var ObjectIDS = objectsArray as? [PFObject] ' –

+0

Так как objectsArray уже является' [PFObject] ', вам не нужно его перетаскивать. Замените 'var ObjectIDS = objectsArray как! [PFObject] 'с' var ObjectIDS = objectsArray! '. Но перед использованием этого убедитесь, что ваши объектыArray не пусты, используя 'objectsArray.count! = 0'. – Santhosh