将时间戳属性添加到 iphonecoredatarecipes 示例代码的成分

Posted

技术标签:

【中文标题】将时间戳属性添加到 iphonecoredatarecipes 示例代码的成分【英文标题】:add timestamp attribute to ingredients of iphonecoredatarecipes sample code 【发布时间】:2014-04-24 12:08:00 【问题描述】:

对于这么简单的问题,我真的很抱歉,但我尝试了几种方法,但都找不到解决方案。

我只想在成分实体中添加时间戳属性。每当我更改 recipes.xcdatamodel 时,我都会得到:

错误 NSError 域:@"NSCocoaErrorDomain" - 代码:134100 0x000000010c162890

我已经尝试过模型版本控制并且:

options:@NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES

代码是苹果提供的原创!

【问题讨论】:

您是否尝试删除该应用并再次运行它? 你应该以正确的方式使用轻迁移... 【参考方案1】:

在项目导航器中选择您的 .xcdatamodeld 文件。

在菜单选项“编辑器”下,选择“添加模型版本”。

将创建数据模型文件的新副本。

在这个新副本中,为了简单起见,我们称它为版本 2,您需要添加一个属性来存储时间。

.xcdatamodeld 文件的第 2 版中(我在此注意 - 请注意选择新文件而不是旧文件)添加一个属性,将其命名为“timeStamp”,将类型设置为“日期”,然后保存。

现在,当您运行示例项目时,您包含在“核心数据堆栈”中的迁移选项会将存储的信息从旧的 .xcdatamodeld 文件迁移到该文件的版本 2。

另请参阅... Core Data; Cocoa error 134100

更新

我加载了 iPhoneCoreDataRecipes 示例代码,然后按照这些步骤操作...

添加了新版本的数据模型(如上所述), 在新版本的数据模型中,非常小心地确定它是我正在修改的新模型,向实体“Ingredients”添加了一个属性“timeStamp”, 到Ingredient.m 文件,添加@dynamic timeStamp, 到Ingredient.h文件,添加@property (nonatomic, retain) NSDate *timeStamp;

RecipesAppDelegate.m 文件中,添加以下代码行...

NSMutableDictionary *options = [NSMutableDictionary dictionary];
[options setValue:[NSNumber numberWithBool:YES]
           forKey:NSMigratePersistentStoresAutomaticallyOption];
[options setValue:[NSNumber numberWithBool:YES]
           forKey:NSInferMappingModelAutomaticallyOption];

更改了这行代码以包含我上面提到的选项,

if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) 

并执行了构建和运行。

我的崩溃并显示不同的消息...

Can't merge models with two different entities named 'Ingredient'

这触发了我需要更改这行代码的内存,

managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];    

到这两行代码...

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:classPersistentStore withExtension:@"momd"];
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:self.modelURL];

这对我来说加载没有错误。

请按照以下步骤操作 - 也应该适合您。

【讨论】:

感谢您的及时回复。我以前也试过这个,但没有奏效。现在我再次尝试使用 iPhoneCoreDataRecipes 没有成功:((( 我从头开始又成功了! ))) 万分感谢!

以上是关于将时间戳属性添加到 iphonecoredatarecipes 示例代码的成分的主要内容,如果未能解决你的问题,请参考以下文章

将默认时间戳添加到雪花中的表

将时间戳添加到pdf

将数据从雪花卸载到 s3 时,如何将日期时间戳添加到 zip 文件?

将记录添加到表中时记录的日期/时间戳? [复制]

将数据类的对象添加到 Kotlin 的 Firestore 时如何添加 Firebase 时间戳?

如何将时间戳添加到列表视图?