コアデータエンティティのサブクラスNSManagedObject
を作成したら、それをプロトコルに正しく準拠させるにはどうすればよいですか?プロトコルには、クラス内で直接宣言する必要のある初期化子があります。しかし、どちらの指定イニシャライザNSItemProviderReading
のinit(itemProviderData:, typeIdentifier:)
コールする必要がありますか?NSManagedObjectはどのようにしてNSItemProviderReadingプロトコルに準拠することができますか?
これは私が下記の持っているものです。
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:)
を呼び出していますか? NSItemProviderReading
プロトコルに準拠して