我想在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:(重点是我的)