У меня есть пользовательские классы, которые создают массив объектов, которые затем динамически превращаются в ячейки для моего UICollectionView, и все классы по сути выглядят так:
import Foundation
class BoardNote : NSObject {
var note_id : String = ""
var itemType : String = ""
var added_by : Any = ""
var link : Any = ""
var content : String = ""
var board_id : Any = ""
var date_added : Any = ""
}
Затем используется экземпляр этого классачтобы создать ячейку следующим образом:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier:
"noteViewCell", for: indexPath) as! NoteViewCell
cell.content.text = (itemArray[indexPath.row] as!
BoardNote).content
cell.noteId = (itemArray[indexPath.row] as! BoardNote).note_id
print("made note cell")
return cell
Когда я пытаюсь реализовать базовое перетаскивание в моем представлении коллекции, я получаю сообщение об ошибке «Не удалось преобразовать значение типа« BoardNote »в« NSObject ». *»1007 *
Я вижу, что мне может потребоваться также сделать это расширением класса NSItemProviderWriting, но я не уверен как.
Вот начало моего расширения DragDelegate, где ошибка возникает в строке 4,который является потоком 1: сигнал SIGABRT:
extension BoardViewController : UICollectionViewDragDelegate
{
func collectionView(_ collectionView: UICollectionView,
itemsForBeginning session: UIDragSession, at indexPath: IndexPath) ->
[UIDragItem]
{
let item = self.itemArray[indexPath.row]
let itemProvider = NSItemProvider(object: item as! NSObject as!
NSItemProviderWriting)
let dragItem = UIDragItem(itemProvider: itemProvider)
dragItem.localObject = item
return [dragItem]
}
Спасибо!