のiOS 11.xのスウィフト4引数の型「NSItemProviderWriting」
。私はこのクラスを作成しました。
import UIKit
import MobileCoreServices
class CustomClass: NSObject, NSItemProviderWriting, NSItemProviderReading {
var image2D:Data?
static var readableTypeIdentifiersForItemProvider = [kUTTypeData as String]
static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self {
return try self.init(itemProviderData: data, typeidentifier: kUTTypeData as String)
}
required init(itemProviderData data: Data, typeidentifier: String) throws {
super.init()
image2D = data
}
static var writableTypeIdentifiersForItemProvider = [kUTTypeData as String]
func loadData(withTypeIdentifier typeIdentifier: String, forItemProviderCompletionHandler completionHandler: @escaping (Data?, Error?) -> Void) -> Progress? {
let data2E = image2D
completionHandler(data2E, nil)
return nil
}
}
コンパイル済みですが、表示されますか?それから私はこの呼び出しでそれを参照します。
func dragInteraction(_ interaction: UIDragInteraction, itemsForBeginning session: UIDragSession) -> [UIDragItem] {
let itemProvider = NSItemProvider(object: CustomClass)
let dragItem = UIDragItem(itemProvider: itemProvider)
return [dragItem]
}
そして私は、エラーメッセージ...引数の型「CustomClass.Typeは」期待タイプ「NSItemProviderWriting」に準拠していないだ...
しかし、それを超えて、ここで任意のより多くの手がかりを見つけるように見えることはできません、これを前進させる方法について、そこに、あるいはどこでも。
私はそれが働いていた、これらの人のいずれかを実装側のポイント...
itemProvider.registerDataRepresentation(forTypeIdentifier: kUTTypeJPEG as String, visibility: .all)
そして、私はこれらの人のいずれかが、それはあまりにも働い実装...
itemProvider.registerFileRepresentation(forTypeIdentifier: kUTTypeJPEG as String, fileOptions: [.openInPlace], visibility: .all)
だから、私は...コードが確実に... THAT表示することができません、思考することは
customClassはプロジェクト内のクラスですが、itemProviderと同じクラス内にはありません。その間にあなたの命名規則を採用しようと試みます! – user3069232
'dragInteraction'メソッドが' customClass'実装の中にない場合は、 'self'をあなたのクラスのインスタンスを参照する他の変数に置き換えてください。 – rmaddy
私は同じページにいるとは分かりません。値を持つCustomClassのインスタンスを作成する必要がある場合、I'vはドロップ内のすべての値をほとんど失ってドラッグします。ドラッグする画像を選択することができます。事前に設定する必要はありません。 – user3069232