2014-11-08 3 views
0

У меня возникли проблемы с параметрами Parse и UITableView. Каждый раз, когда я запускаю приложение, будь то на симуляторе или моем телефоне, приложение перестает работать, и единственное, что показывает консоль, - (lldb). При проверке отладчика выделяются только следующие две строки кода.UITableView and Parse Data

findTimelineData.findObjectsInBackgroundWithBlock{ 

и

self.timelineData = array as NSMutableArray 

Оба имеют ошибку: Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT,subcode=0x0), и им не совсем уверен, что это значит ...

Вот обрывки мой код:

override func viewDidAppear(animated: Bool) 
{ 
    self.loadData() 
} 

func loadData() 
{ 
    timelineData.removeAllObjects() 

    var findTimelineData : PFQuery = PFUser.query() 
    findTimelineData.findObjectsInBackgroundWithBlock{ 
     (objects: [AnyObject]!, error: NSError!)-> Void in 
     if error == nil 
     { 
      println("No error") 

      if let object = objects as? [PFObject!] 
      { 
       for object in objects 
       { 
        self.timelineData.addObject(object) 
       } 
      } 

      let array : NSArray = self.timelineData.reverseObjectEnumerator().allObjects 
      self.timelineData = array as NSMutableArray 

      self.tableView.reloadData() 
     } 

    } 
} 

и это будут ячейки, которые я пытаюсь загрузить, но код никогда не доходит до этого ...

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
    println("loading cell") 

    let postCell : LocationTableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as LocationTableViewCell 

    let post : PFObject = self.timelineData.objectAtIndex(indexPath.row) as PFObject 

    postCell.imageView.image = post.objectForKey("currentLocation") as? UIImage 
    postCell.userInfo.text = post.objectForKey("FirstLastName") as? String 

    // Configure the cell... 

    return postCell 
} 

для полного кода: http://pastebin.com/MN7qcFhq

ответ

0

Вы не хватает втор в:

if let object = objects as? [PFObject!] 
{ 
    for object in objects 
    { 
     self.timelineData.addObject(object) 
    } 
} 

Должно быть:

if let objects = objects as? [PFObject!] 
{ 
    for object in objects 
    { 
     self.timelineData.addObject(object) 
    } 
} 
+0

Просто пробовал, и изменить только ошибка .. Я все еще получаю сообщение об ошибке, за исключением этого времени, ошибка: «Тема 1: EXC_BREAKPOINT (код = EXC_ARM_BREAKPOINT, subcode = 0xdefe)' – gguillaume

0

Эй Бадди я вам об этом один. У меня были те же проблемы, но я получил помощь и понял.

Это ваша нагрузка Функция

Попробуйте

func loadData(){ 
     timelineData.removeAll(keepCapacity: false) 

      var findTimelineData:PFQuery = PFQuery(className:"Sweets") 
      findTimelineData.findObjectsInBackgroundWithBlock 
       { 
        (objects:[AnyObject]! , error:NSError!) -> Void in 
        if error == nil 
        { 
         self.timelineData = objects.reverse() as [PFObject] 


         //let array:NSArray = self.timelineData.reverseObjectEnumerator().allObjects 

         println(objects) 

         // self.timelineData = array as NSMutableArray 


         self.tableView.reloadData() 
       } 
      } 
    } 

Затем перейдите в

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

И изменить

let sweet:PFObject = self.timelineData.objectAtIndex(indexPath.row) as PFObject 

Для этого

let sweet: PFObject = self.timelineData[indexPath.row] as PFObject 

Что происходит, вы смешиваете Obj C с Swift, код, который вы используете, вероятно, был написан в Beta, поэтому обязательно вернитесь и изучите различия. Если у вас все еще есть проблемы, проверьте все свои условия, если (error! = Nil) не должно быть в вашем коде.

1

это работало для меня:

в коде только лишь заменить

self.timelineData = array as NSMutableArray 

в

self.timelineData = NSMutableArray(array: array)