gpt4 book ai didi

ios - 向 coredata 添加一个新实体——我还能使用轻量级迁移吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:19:17 25 4
gpt4 key购买 nike

我有一个现有的核心数据集,我想向其中添加一个实体。我对添加新实体后是否可以使用轻量级迁移将现有用户过渡到新模型感到有点困惑。

当前模式是(只显示实体):

Story 1toMany-> Sentences

我需要:

Story 1toMany-> Sentences 1toMany-> Media

我可以使用轻量级迁移工具来执行此操作吗?

我读过 documentation :

For Core Data to be able to generate an inferred mapping model, changes must fit an obvious migration pattern, for example:

Simple addition of a new attribute Removal of an attribute A non-optional attribute becoming optional An optional attribute becoming non-optional, and defining a default value Renaming an entity or property

但是this question似乎表明轻量级迁移仍然可以通过添加实体来工作。由于新媒体实体是可选的,我看不出它实际上是一个问题。

最佳答案

是的,您可能会使用轻量级迁移。根据我的经验,我发现您需要在编辑器菜单下添加模型版本...您对 CoreData 模型进行更改之前。通过这种方式,可以映射之前和之后的场景。然后,您需要将新模型设置为当前模型。 (您现在可以将实体添加到 Core Data 模型。确保您正在处理正确的模型。)

最后,您需要确保传递用于初始化 PersistentStoreCoordinator 的选项。

NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool: YES],NSMigratePersistentStoresAutomaticallyOption,[NSNumber numberWithBool:YES],NSInferMappingModelAutomaticallyOption, nil];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {...

关于ios - 向 coredata 添加一个新实体——我还能使用轻量级迁移吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com