【发布时间】:2017-07-31 23:49:36
【问题描述】:
创建核心数据实体的NSManagedObject 子类后,如何使其正确符合NSItemProviderReading 协议?该协议有一个必需的初始化程序,必须直接在类中声明。但是NSItemProviderReading 的init(itemProviderData:, typeIdentifier:) 应该调用哪个指定的初始化程序?
这是我下面的内容:
import Foundation
import CoreData
@objc(Something)
public class Something: NSManagedObject, NSItemProviderReading {
public override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?) {
super.init(entity: entity, insertInto: context)
}
// MARK: - Item Provider Reading
public static var readableTypeIdentifiersForItemProvider: [String] {
return []
}
public required init(itemProviderData data: Data, typeIdentifier: String) throws {
// This seems very hack-y…
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
self.init(context: context)
}
}
拨打self.init(context:)真的是去这里的正确方式吗?
【问题讨论】:
标签: swift core-data drag-and-drop ios11 swift4