我正在尝试获取我保存在一个核心数据对象中的值,但是我不断收到此错误
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'Man''
结果错误发生在我编写的代码中,它尝试访问核心数据对象然后记录其内容,如下所示。
if ([manufDBVNumber isEqualToNumber:currentDBVersion]) {
// READ FROM CORE DATA
// WRITE TO CORE DATA
NSManagedObjectContext *context = [self managedObjectContext];
NSLog(@"%@", context);
// Test listing all FailedBankInfos from the store
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName"Man" inManagedObjectContext:self.managedObjectContext]; // This is where the error is happening.
[fetchRequest setEntity:entity];
NSError *error;
NSMutableArray *manufacturerDictionaryArray = [[NSMutableArray alloc] init];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
for (Manuf *manuf in fetchedObjects) {
NSLog(@"MANA: %@", man.mana);
NSLog(@"SURGE: %@", man.surge);
NSLog(@"HEALTH: %@", manuf.health);
etc//....
这就是我合成 managedObjectContext 和 fetchedResultsController 的方式
// Core-Data variables used for fetching and managing the object
@synthesize fetchedResultsController = __fetchedResultsController;
@synthesize managedObjectContext = __managedObjectContext;
任何帮助将不胜感激。
Best Answer-推荐答案 strong>
你这样做:
NSManagedObjectContext *context = [self managedObjectContext];
然后你访问这个:
self.managedObjectContext
假设你的 NSLog(@"%@", context); 显示一个有效的 NSManagedObjectContext,那么我会这样做:
NSEntityDescription *entity = [NSEntityDescription entityForName"Man" inManagedObjectContext:context];
或者,将您的原始声明更改为:
self.managedObjectContext = [self managedObjectContext];
关于ios - 尝试访问核心数据时出错,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/12666919/
|