将时间戳属性添加到 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 示例代码的成分的主要内容,如果未能解决你的问题,请参考以下文章
将数据从雪花卸载到 s3 时,如何将日期时间戳添加到 zip 文件?