2013-03-09 3 views
0

из следующего исходного файла, я пытаюсь загрузить изображение и сохранить в Core Data, а также показать в imageView, но он не работает Не могли бы вы помочь мне исправить это.Сохраните изображение в Core Data

- (IBAction)save:(id)sender 
{ 
    NSLog(@"Telling the AddTrackingTVC Delegate that save was tapped on the  AddTrackingTVC"); 

    [self.delegate theSaveButtonOnTheAddPlantNoteTVCWasTapped:self]; 

    MyPlant *myTracking = [NSEntityDescription insertNewObjectForEntityForName:@"MyPlant" inManagedObjectContext:self.managedObjectContext]; 

    myTracking.name = nameTextField.text; 
    myTracking.detail = detailTextField.text; 
    myTracking.createdDate = [NSDate date]; 
    //myTracking.photo = [NSData ]; 
    [self.managedObjectContext save:nil]; // write data to database 
    [self.delegate theSaveButtonOnTheAddPlantNoteTVCWasTapped:self]; 
} 




- (IBAction)takePicture:(id)sender { 
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
    // If our device has a camera, we want to take a picture, otherwise, we // just pick from photo library 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
     [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; } 
    else { 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; } 
    // This line of code will generate a warning right now, ignore it 
    [imagePicker setDelegate:self]; 
    // Place image picker on the screen 
    [self presentViewController:imagePicker animated:YES completion:nil]; 
} 


-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    self.currentEntry.photo = UIImageJPEGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage], 1.0); 
    [self dismissViewControllerAnimated:YES completion:nil]; 

} 

Так что же мне делать с этими функциями, чтобы он мог сохранять изображение в основные данные?

Download source files

+1

Пожалуйста, обратите внимание, что большинство людей проявляют осторожность (в лучшем случае) о загрузка .zip-файлов. Нам было бы легче понять проблему, если вы разместите какой-то соответствующий код и выделите части, которые вам неприятны. –

+0

Пожалуйста, определите соответствующую часть исходного кода, которая находится под вопросом, и включите ее в свой вопрос. –

+1

Я бы рекомендовал сохранить изображение на диске и сохранить * путь * в основных данных - – Hyperbole

ответ

5

Это, как я это делаю:

NSURL * imageURL = [NSURL URLWithString:@"http://www.website.com/picture.png"]; 
NSData * imageData = [NSData dataWithContentsOfURL:imageURL]; 
UIImage * image = [UIImage imageWithData:imageData]; 
NSData *savedImageData = UIImagePNGRepresentation(image); 
[coreDataObject setValue:savedImageData forKey:@"image"]; 

И если вы хотите, чтобы показать:

imageView.image = [UIImage imageWithData:[coreDataObject valueForKey:@"image"]];