将字符串属性添加到CoreDataBooks

时间:2011-03-04 16:14:45

标签: iphone xcode ios sqlite core-data

我一直在搞乱CoreDataBooks并尝试在sqlite文件中添加另外一个字段以及当前的三个字段。我在.xcdatamodel中添加了属性字符串,并在book.h,book.m和本地化文件中声明了它(所有这些都没有更改sqlite文件)。但是,这些更改从不在sqlite中添加字段,并且应用程序永远不会加载。每次我在模拟器中删除应用程序并执行构建时 - >干净,但无济于事。我也尝试更改sqlite文件以匹配.xcdatamodel,但应用仍然无法加载。

这是CoreDataBooks或我的问题吗?在这之前我是否需要对应用程序进行版本设置?只要我在模拟器中删除应用程序,我似乎不应该这样做。

任何人都知道如何在CoreDataBooks中添加第四个字符串属性(sqlite字段)?

提前致谢!

3 个答案:

答案 0 :(得分:1)

我在CoreDataBooks

中找到了一段很好的代码
NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"CoreDataBooks.sqlite"];
/*
 Set up the store.
 For the sake of illustration, provide a pre-populated default store.
 */
NSFileManager *fileManager = [NSFileManager defaultManager];
// If the expected store doesn't exist, copy the default store.
if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"CoreDataBooks" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
    }
}

CoreDataBooksAppDelegate.m:154 中,这对我来说,每次应用程序找不到sqlite文件时,都会从bundle中复制它,而不会通过修改 CoreDataBooks.xcdatamodel <来更改它/强>

尝试使用其他方法,或者只修改捆绑的sqlite文件。

答案 1 :(得分:1)

如果该应用未加载,那么您的数据模型可能有问题。检查控制台是否有错误消息。

您必须决定是否要使用sqlite或核心数据。如果要监视sqlite文件的更改或向sqlite文件添加字段,则应使用sqlite而不是core-data。

如果要使用核心数据,则应忽略sqlite文件。

答案 2 :(得分:0)

想出来。应用程序WAS创建新的sqlite文件,我只需要在模拟器文件中找到它。 Grrrr,当我正确地做所有事情时浪费了太多时间。经验教训我猜:)