2016-11-24 7 views
0

Моего кода:ОШИБКИ: Попытка вставить элемент 0 в раздел 0, но есть только 0 пунктов в разделе 0 после обновления

DataService.dataService.fetchDataFromServer { (channel) in 
     self.channels.append(channel) 
     let indexPath = IndexPath(item: self.channels.count - 1, section: 0) 
     self.collectionView?.insertItems(at: [indexPath]) 
    } 

выборки данных из функции сервера:

func fetchDataFromServer(callBack: @escaping (Channel) ->()) { 
     DataService.dataService.CHANNEL_REF.observe(.childAdded, with: { (snapshot) in 
      let channel = Channel(key: snapshot.key, snapshot: snapshot.value as! Dictionary<String, AnyObject>) 
      callBack(channel) 
     }) 
    } 

Номер ПУНКТОВ Раздел:

override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of items 
    return 0 
} 

Полный Ошибка:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to insert item 0 into section 0, but there are only 0 items in section 0 after the update' 

Я работаю с коллекцией и не знаю, почему эта ошибка появляется.

Любая помощь будет оценена!

+0

Покажите свой 'numberOfItemsInSection' метод – Paulw11

+0

только что добавили его. Посмотрите! –

+0

Вы возвращаетесь 0. Вы, вероятно, захотите вернуть 'self.channels.count' – Paulw11

ответ

2

numberOfItemsInSection возвращает 0, поэтому, когда вы указываете представление коллекции, вы добавляете элемент, он расстраивается, когда этот метод говорит, что в коллекции все еще есть 0 элементов.

Ваш код имеет даже комментарий // #warning Incomplete implementation, return the number of items

Вы, вероятно, хотите что-то вроде:

override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 

    return self.channels.count 
} 
+0

Нет, это решение проблемы, которую вы указали на основе предоставленную вами информацию. Вы все еще получаете то же исключение? – Paulw11

+0

да, я все еще получаю ту же ошибку, поэтому она не сработала, у вас есть другое решение, извините за неправильное выражение моего комментария –

+1

Как я уже сказал, я не могу предложить ничего другого на основе того, что вы показали, но это вполне возможно, что вы не настроили другие вещи на основе кода, который вы использовали в 'numberOfItemsInSection' – Paulw11