gpt4 book ai didi

ios - 如何更改 xcdatamodel 中的属性类型?

转载 作者:行者123 更新时间:2023-11-29 01:56:43 24 4
gpt4 key购买 nike

我是一名新手,被分配到一个巨大的项目。我发现了一个需要修复的小错误,但我不知 Prop 体如何修复。

好的,就在这里。 Xcode 核心数据模型中的 issueNumber 属性设置为 Integer 64。我需要将其更改为 String,以便修复错误,但是当我将属性类型从 Integer 64 更改为 String 时,我的应用程序以这样开始的巨大输出崩溃:

CoreData: error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///Users/Apple/Library/Developer/CoreSimulator/Devices/67D17D00-2AF8-4BC4-ABB7-091C95D02F35/data/Containers/Data/Application/B94B1310-4A63-4F91-AE7B-5F625697B3E2/Library/iMagDocument.sqlite options:{ NSInferMappingModelAutomaticallyOption = 1; NSMigratePersistentStoresAutomaticallyOption = 1; NSSQLitePragmasOption = { synchronous = OFF; }; } ... returned error Error Domain=NSCocoaErrorDomain Code=134130 "The operation couldn’t be completed. (Cocoa error 134130.)" UserInfo=0x7f405ef0 {URL=file:///Users/Apple/Library/Developer/CoreSimulator/Devices/67D17D00-2AF8-4BC4-ABB7-091C95D02F35/data/Containers/Data/Application/B94B1310-4A63-4F91-AE7B-5F625697B3E2/Library/iMagDocument.sqlite, metadata={ NSPersistenceFrameworkVersion = 519; NSStoreModelVersionHashes = {

它一直在继续......这就是我所做的:我将数据模型中的类型从 Integer 64 更改为 String:

好吧,我做错了什么?肯定有一些我明显遗漏的东西,所以每次我更改属性类型时应用程序都会崩溃。

最佳答案

这确实是一个复杂的问题。您不能简单地更改属性的数据类型。您看到的错误意味着核心数据无法将您的数据迁移到新版本。

1) 创建新的模型版本并在那里设置新的数据类型。参见 https://developer.apple.com/library/ios/recipes/xcode_help-core_data_modeling_tool/Articles/creating_new_version.html

2) 设置要使用的新模型版本。 https://developer.apple.com/library/ios/recipes/xcode_help-core_data_modeling_tool/Articles/setting_current_version.html

3) 您必须使用选项 NSMigratePersistentStoresAutomaticallyOption 和 NSInferMappingModelAutomaticallyOption 添加持久存储。

NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: [NSNumber numberWithBool:YES],
NSInferMappingModelAutomaticallyOption: [NSNumber numberWithBool:YES]
};

关于ios - 如何更改 xcdatamodel 中的属性类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30759842/

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