代码之家  ›  专栏  ›  技术社区  ›  Ankit Baid

Swift 4参数类型不符合预期的类型“NSItemProviderWriting”

  •  2
  • Ankit Baid  · 技术社区  · 7 年前

    我面临这个错误,我有一个结构,我想让它成为UIDragItem,但我得到了这个错误

    参数类型“CustomColor”。类型“”不符合预期的类型“NSItemProviderWriting”

    我还添加了我的结构类型

    struct CustomColor {
        let color : UIColor!
        let name : String!    
    }
    

    此功能不起作用

    func dragItem(for indexPath: IndexPath) -> UIDragItem {
        let color = colorDetails[indexPath.row]
        let itemProvider = NSItemProvider(object: CustomColor )
        let dragItem = UIDragItem(itemProvider: itemProvider)
        dragItem.localObject = color
        return dragItem    
    }
    

    当我把CustomColor放在side NSItemProvider中时,它给了我那个错误。如果有人真的解决了这个问题或知道解决方案,请帮助我。

    作为参考,我看到了这个答案。 Argument type 'customClass.Type' does not conform to expected type 'NSItemProviderWriting'

    在有人将其标记为重复之前,请检查我们是否都面临不同的问题。 提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Kevinosaurio    7 年前

    您需要传递的实例 UIColor 不是 自定义颜色 .

    尝试以下操作:

    func dragItem(for indexPath: IndexPath) -> UIDragItem {
       let color = colorDetails[indexPath.row]
       let itemProvider = NSItemProvider(object: color.color)
       let dragItem = UIDragItem(itemProvider: itemProvider)
       dragItem.localObject = color
       return dragItem
    
    }