2

コアデータオブジェクトの1つに保存した値を取得しようとしていますが、このエラーが発生し続けます

 *** 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;

どんな助けでも大歓迎です。

4

2 に答える 2

3

これをして:

NSManagedObjectContext *context = [self managedObjectContext];

しかし、これにアクセスします:

self.managedObjectContext

NSLog(@"%@", context);あなたが有効な NSManagedObjectContext を示していると仮定すると、私はこれを行います:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Man" inManagedObjectContext:context];

または、元の宣言を次のように変更します。

self.managedObjectContext = [self managedObjectContext];
于 2012-10-01T02:42:18.880 に答える
1

viewController.m 実装ファイルで、このコードのすぐ下に:

- (void)viewDidLoad
{

次のコードを追加します。

id delegate = [[UIApplication sharedApplication] delegate];
    self.managedObjectContext = [delegate managedObjectContext];
于 2013-06-26T22:45:06.537 に答える