ios - 核心数据自定义迁移策略
问题描述
我在迁移核心数据时遇到问题 我想将快捷方式卡关系传输到我的每个 ShortcutItmes 我想在快捷方式项中创建新的卡关系并将快捷方式的卡关系传输到快捷方式具有的每个快捷方式项 我应该怎么做?
Shortcut
title: String
items -->> ShortcutItems
card --> Card
ShortcutItems:
title: String
amount:Int
shortcut --> Shortcut
changing it to >
shortcut:
title: String
items --> ShortcutItems
ShortcutItems:
title:string
amount:Int
card --> Card * this should inherit shortcut's card relation
shortcut --> Shortcut
我不知道如何迁移这个核心数据结构任何想法?我已经尝试过了,但找不到访问快捷方式的 Items 值以根据旧快捷方式卡值将新值插入其新创建的卡关系的方法
class ShortcutToShortcutMappingModelMigrationPolicy_v1_to_v2:NSEntityMigrationPolicy {
override func createDestinationInstances(forSource sInstance: NSManagedObject, in mapping: NSEntityMapping, manager: NSMigrationManager) throws {
if sInstance.entity.name == "Shortcut" {
let card = sInstance.value(forKey: "card")
let name = sInstance.primitiveValue(forKey: "title")
let shortcutItems = sInstance.primitiveValue(forKey: "items")
let newShortcut = NSEntityDescription.insertNewObject(forEntityName: "Shortcut", into: manager.destinationContext)
newShortcut.setValue(name, forKey: "title")
// newShortcut.setValue(shortcutItems, forKey: "items")
manager.associate(sourceInstance: sInstance, withDestinationInstance: newShortcut, for: mapping)
}
}
}
我怎样才能使用这个 createDestinationInstances 方法!?
解决方案
推荐阅读
- sql - 根据 LAG 值和条件更新表
- c - 在 `#if` 宏上将预定义的值作为浮点数(或字符串)询问
- javascript - userCodeAppPanel:18 未捕获的类型错误:无法设置 null 的属性(设置“值”)
- python - 如何从 python 数据集中的特定列中删除标点符号?
- java - Mockito 在 java 8 中运行,但在 java 11 中给出未完成的存根错误
- amazon-web-services - 通过 UDP 中的 Gstreamer 将网络摄像头连接到 Kinesis Video Stream
- xpath - 访问引用另一个名称 XPath 的元素
- reactjs - onClick() 事件适用于一个 div,但不适用于另一个。为什么?
- typescript - 在 fp-ts 中,如何组合 2 个(或更多)Ord 实例
- python - 在 Python 3 中定义函数:返回 None 值