gpt4 book ai didi

objective-c - UIManagedDocument 如何找到默认的数据模型文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:21 29 4
gpt4 key购买 nike

我一直在关注 CS193p 关于核心数据的讲座,但在插入新的托管对象时遇到了问题。

错误是:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an entity named 'Card' in this model.'

我已经在我的数据模型文件中创建了“Card”实体。但是我觉得它没有正确找到数据模型文件,因为一起删除该文件会产生相同的错误。我想知道如何确定是否是由于 UIManagedDocument 对象未找到导致此错误的数据模型。

这是我在我的 Controller 类中所做的:

NSURL *docURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *databaseURL = [docURL URLByAppendingPathComponent:@"Cards Database"];
self.cardsDatabase = [[UIManagedDocument alloc] initWithFileURL:databaseURL];

if (![[NSFileManager defaultManager] fileExistsAtPath:[self.cardsDatabase.fileURL path]]) {
[self.cardsDatabase saveToURL:self.cardsDatabase.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
NSLog(@"Done");
}];
} else if (self.cardsDatabase.documentState == UIDocumentStateClosed) {
NSLog(@"Closed");
[self.cardsDatabase openWithCompletionHandler:^(BOOL success) {
if (success) {
NSLog(@"Opened");
[self addSampleData];
}
}];
} else if (self.cardsDatabase.documentState == UIDocumentStateNormal) {
NSLog(@"Normal");
}


- (void)addSampleData
{
NSManagedObjectContext *context = self.cardsDatabase.managedObjectContext;

[context performBlockAndWait:^{
Card *card = [NSEntityDescription insertNewObjectForEntityForName:@"Card" inManagedObjectContext:context];

card.title = @"Test Title";
}];

[self.cardsDatabase saveToURL:self.cardsDatabase.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:^(BOOL success) {
NSLog(@"Saved");
}];
}

错误发生在这一行:

Card *card = [NSEntityDescription insertNewObjectForEntityForName:@"Card" inManagedObjectContext:context];

最佳答案

尝试重置模拟器(在设备中,删除应用程序),清理构建并再次运行。这应该可以解决大部分与“无法定位实体”相关的问题。

关于objective-c - UIManagedDocument 如何找到默认的数据模型文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12830905/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com