私は常に同じ方法で Web サービスからデータを取得しています。それは常に機能しました。しかし、今このエラーが発生しています。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter
searching for entity name 'Team''
この方法ではクラッシュしています。
- (NSMutableArray *)getDoelmannen
{
NSLog(@"tot hier doelman");
NSArray *results = [[NSArray alloc]init];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Team"
inManagedObjectContext:self.genkDatabase.managedObjectContext]];
request.predicate = [NSPredicate predicateWithFormat:@"position ==[c] %@",
@"Doelman"];
NSLog(@"predicate is: %@",request.predicate);
NSError *error = nil;
NSLog(@"tot hier");
results = [self.genkDatabase.managedObjectContext
executeFetchRequest:request error:&error];
return [results valueForKey:@"image"] ;
}
データベースを開くには、次の方法を使用します。
-(void)viewWillAppear:(BOOL)animated
{
if (!self.genkDatabase) { // we'll create a default database if none is set
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"Default appGenk Database"];
self.genkDatabase = [[UIManagedDocument alloc] initWithFileURL:url]; // setter will create this for us on disk
}
}
- (void)setGenkDatabase:(UIManagedDocument *)genkDatabase
{
if (_genkDatabase != genkDatabase) {
_genkDatabase = genkDatabase;
[self useDocument];
}
}
- (void)useDocument
{
if (![[NSFileManager defaultManager] fileExistsAtPath:[self.genkDatabase.fileURL path]]) {
// does not exist on disk, so create it
[self.genkDatabase saveToURL:self.genkDatabase.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
NSLog(@"bestaat niet");
[self getTeam];
}];
} else if (self.genkDatabase.documentState == UIDocumentStateClosed) {
// exists on disk, but we need to open it
[self.genkDatabase openWithCompletionHandler:^(BOOL success) {
NSLog(@"closed");
[self getTeam];
}];
} else if (self.genkDatabase.documentState == UIDocumentStateNormal) {
// already open and ready to use
NSLog(@"Normal");
[self getTeam];
}
}
誰でも私を助けることができますか?
敬具。
EDTI
別のビューコントローラーでメソッドをテストすると機能するため、非常に奇妙です。唯一の違いは、これを行う .h ファイルにあります。
@interface MultimediaViewController : CoreDataTableViewController
そして、それが機能しないviewControllerでは、これが行われます。
@interface MultimediaViewController : NRGridViewController
しかし、私はまだこのようにインポートしました。
#import "CoreDataTableViewController.h"