#ios #swift
#iOS #swift
Вопрос:
Привет, я несколько новичок в iOS и swift. Недавно я перешел на swift 2.3, и теперь я получаю эту ошибку
Use of undeclared type 'IndexPath'
для этого метода
override func collectionView(collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
Есть идеи??
Комментарии:
1. @EricAya я пробовал это.
2. Функция должна быть такой: CollectionView(CollectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
3. Похоже, что-то с swift 2.3 и swift 3.0 приводит к путанице синтаксиса.
Ответ №1:
Параметр функции NSIndexPath
не должен быть IndexPath
. Xcode 8 использует документацию и завершение кода для Swift 3.0
.
Синтаксис Swift 2.3:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
Синтаксис Swift 3.0:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
Комментарии:
1. @Sanjeetverma был прав, что полный метод должен выглядеть следующим образом.
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
Ответ №2:
Да! Это неверно в документации Apple. Не уверен, почему они просто не исправляют это