嗨,我是 IOS 的初学者,并创建了我的第一个核心数据应用程序。我已经创建了我的模态并将其包含在项目中。它确实包含实体“客户”。当我使用以下测试代码创建数据库并尝试添加实体时,出现以下错误
..'+entityForName:找不到实体名称“ItemMake”的 NSManagedObjectModel
当调用 [NSEntityDescription insertNewObjectForEntityForName:@"Client" inManagedObjectContext:contxt];
我已经检查了我能想到的所有内容,代码如下所示。这是一些进一步的信息......
a) mdl 和 contxt 不为零。
b) 在模拟器中创建数据库文件 (16kb)
c) 从另一个工具访问数据库只显示两个表,它们似乎是 SQLlite 系统表
d) 包确实包含一个“EasyOrder.momd”目录和一个“EasyOrder.mom”文件。该应用程序称为“EasyOrder”。
e) 该项目包含一个“EasyOrder.xcdatamodeld”文件,其中定义了一个客户实体(以及其他实体)。
f)我在我的数据库中尝试了其他实体,结果相同
g) My 是一个标准应用程序,我也添加了核心数据支持。我没有在应用程序委托中使用默认代码,但我的示例也没有。
代码如下
NSManagedObjectContext *contxt;
NSManagedObjectModel *mdl;
NSPersistentStoreCoordinator *ps;
mdl = [NSManagedObjectModel mergedModelFromBundles:nil];
ps = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mdl];
NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [documentDirectories objectAtIndex:0];
NSString *dbLoc = [docDir stringByAppendingPathComponent:@"test.sqllite"];
NSURL *databaseUrl = [NSURL fileURLWithPath:dbLoc];
NSError *err;
if ([ps addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:databaseUrl
options:nil
error:&err] == false) {
NSLog(@"%@", err);
}
[contxt setUndoManager:nil];
//Add record
//在这里崩溃!
Client *c = [NSEntityDescription insertNewObjectForEntityForName:@"Client" inManagedObjectContext:contxt];
[c setEntityRef:1234];
……
蒂亚·罗布