我想在SQLite中创建一个新的实体(表)。我的代码如下:

+(BOOL)CreateDataSet:(NSManagedObjectModel *) model
    attributes:(NSDictionary*)attributes
    entityName:(NSString*) entityName
{
    NSEntityDescription *entityDef = [[NSEntityDescription alloc] init];

    [entityDef setName:entityName];
    [entityDef setManagedObjectClassName:entityName];
    [model setEntities:[NSArray arrayWithObject:entityDef]];
    NSArray *properties =   [CoreDataHelper CreateAttributes:attributes];
    [entityDef setProperties:properties];

    [entityDef release];

    return TRUE;
}

但这会引发错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,
原因:“无法修改不可变的模型。”
***第一次抛出调用堆栈:
(
0 CoreFoundation 0x01c5abe9 __exceptionPreprocess + 185
1个libobjc.A.dylib 0x01daf5c2 objc_exception_throw + 47
2 CoreData 0x0152634a-[NSManagedObjectModel(_NSInternalMethods)_throwIfNotEditable] + 106
3 CoreData 0x01526904-[NSManagedObjectModel setEntities:] + 36
....

这似乎表明该模型是只读的。

最佳答案

From the documentation:(重点是我的)

10-08 00:16