gpt4 book ai didi

ios - 确定核心数据模型中何时有新版本

转载 作者:可可西里 更新时间:2023-11-01 03:08:37 24 4
gpt4 key购买 nike

小问题:

我只想在我的核心数据模型发生变化(新实体、新属性等)时在我的应用程序中运行特定代码。如何确定模型是否已更改?

只是一些伪代码:

    if (current_model_version != previous_model_version) {
//do some code
} else {
// do some other code
}

我猜我可能会使用 versionHashes 或 isConfiguration:compatibleWithStoreMetadata: 来执行此操作,但我不确定如何操作。

为清楚起见,进行了一些编辑:“当前”表示“现在”,“上一次”表示“上次启动应用程序”。

最佳答案

答案似乎是isConfiguration:compatibleWithStoreMedia:

我在这里找到了一些有用的信息:

http://mipostel.com/index.php/home/70-core-data-migration-standard-migration-part-2

我是这样设置的:

- (BOOL)modelChanged
{
NSError *error;
NSURL * sourceURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"db.sqlite"];
NSDictionary *sourceMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:NSSQLiteStoreType URL:sourceURL error:&error];
BOOL isCompatible = [[self managedObjectModel] isConfiguration:nil compatibleWithStoreMetadata:sourceMetadata];

return isCompatible;

}

'self' 是我的共享数据存储,不一定非得去那里。

deanWombourne 指出,这实际上是确定数据是否可以自动迁移,因此它并不是我提出的问题的确切解决方案。在这种情况下,它确实满足了我的需求。

关于ios - 确定核心数据模型中何时有新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12755897/

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