2011-05-23 103 views
0

我正在使用以下代码尝试上传模型中的NSManagedObject(可能是不正确的术语)。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]; 
} 

回答

3

您需要保存写入后上下文

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