NSManagedObject не входит в модель - PullRequest
0 голосов
/ 23 мая 2011

Я использую следующий код, чтобы попытаться загрузить NSManagedObject в модель (возможно, неверный термин).

Скажите, пожалуйста, в чем проблема.

CDImage *image = [NSEntityDescription insertNewObjectForEntityForName:@"Image" inManagedObjectContext:[self managedObjectContext]];
    [image setDate:[NSDate date]];
    [image setImage:UIImagePNGRepresentation([_imageView image])];
    [image setLocation:[dict objectForKey:@"location"]];
    [image setUrl:[dict objectForKey:@"url"]];

CDImage.m

@synthesize url, date, image, location;
- (void) dealloc {
    [url release];
    [date release];
    [image release];
    [location release];
    [super dealloc];
}

Моя модель:

enter image description here

Получение объектов:

- (void) refreshArray {
    if ([[self cdArray] isEqual:nil]) {
        [self setCdArray:[[NSMutableArray alloc] init]];
    }
    [cdArray removeAllObjects];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSError *error = nil;
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Image" 
                                              inManagedObjectContext:[self managedObjectContext]];
    [fetchRequest setEntity:entity];
    NSArray *fetchedObjects = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];    
    for (CDImage *image in fetchedObjects) {
        [cdArray addObject:image];
        [[self tableView] reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[cdArray indexOfObject:image] inSection:0]] withRowAnimation:UITableViewScrollPositionMiddle];
    }
    [[self tableView] reloadData];
    NSLog(@"%d", [cdArray count]);
    NSLog(@"IN REFRESH ARRAY");
    [fetchRequest release];
}

1 Ответ

3 голосов
/ 23 мая 2011

Вам нужно сохранить контекст после записи

NSError *saveError;        
if (![context save:&saveError]) {
    NSLog(@"Error saving entity: %@", saveError);
}
...