2017-02-02 7 views
2

Я новичок в Swift, я разбираю свой JSON с помощью ObjectMapper, но хочу, чтобы данные отображались в TableView. Но у меня есть проблема:TableView NSException

LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException

Я получаю это после того, как метода numberOfRowsInSection. Мой массив не ноль, массив имеет 2193 элементов Я не понимаю, почему это произошло

Это мой код для разбора JSON:

let timeStamp = NSNumber(value: Date().timeIntervalSinceNow) 

    var programs = [PrograToDayModel]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     super.viewDidLoad() 
     let timeStamp = NSNumber(value: Date().timeIntervalSinceNow) 
     self.downloadPrograms(for: timeStamp) 

    } 

    func downloadPrograms(for timestamp: NSNumber) { 

     Alamofire.request("http://52.50.138.211:8080/ChanelAPI/programs/\(timestamp)").responseArray { (response: DataResponse<[PrograToDayModel]>) in 

      let programlArray = response.result.value 

      if let programlArray = programlArray { 
       for program in programlArray { 

        self.programs.append(program) 
        print(program.title as Any) 
       } 


      } 
      DispatchQueue.main.async { 
       self.tableView.reloadData() 
      } 
     } 
    } 

это хорошо я печать элемент в консоли: enter image description here

мой код для таблицы:

// MARK: - Table view data source 

    override func numberOfSections(in tableView: UITableView) -> Int { 
     // #warning Incomplete implementation, return the number of sections 
     return 1 
    } 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     // #warning Incomplete implementation, return the number of rows 
     print(self.programs.count as Any) 
     return self.programs.count 

    } 


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "ProgramTableViewCell", for: indexPath) as! ProgramTableViewCell 

     cell.title.text = self.programs[indexPath.row].title 

     return cell 
    } 
} 

Все идентификаторы вместо I U петь панель вкладок, tableView, tableViewCell Как я могу решить эту проблему?

+3

Должно быть упоминание причины в отладчике. Пожалуйста, поделитесь этим. –

+2

В отладчике должно быть больше информации об этом NSException. Это должно помочь. – Larme

+1

@Umair Afzal thats all: warning: не удалось загрузить любую информацию класса Objective-C. Это значительно снизит качество имеющейся информации о типе. и мой print и libC++ abi.dylib: завершение с неперехваченным исключением типа NSException –

ответ

2

Чтобы определить проблему, вы можете просто попробовать это -

это может быть причиной этого вопроса

Так пойдите в Main.storyboard и щелкните правой кнопкой мыши на View Controller в верхней части план телефона и удалите все розетки с желтыми флагами (если есть).

enter image description here

+0

нет У меня никогда не было –

0

я получал подобную ноны описательную ошибки при попытке инициализировать uitableviewcontroller при попытке добавить раздел/количество строк. Вы зарегистрировали класс ячейки tableview? Я вижу, что у вас создана пользовательская ячейка tableview, поэтому, если она не зарегистрирована в вашем представлении таблицы, которая может вызвать эту ошибку.

tableView.register("ProgramTableViewCell".self, forCellReuseIdentifier: "ProgramTableViewCell")