저는 iOS에서 신선한 사람입니다. 여기에 UIImagePickerController 샘플 코드가 있습니다.UIImagePickerController에서 사용하는 CoreData에 대해 알고 싶습니다.
NSManagedObjectContext, NSEntityDescription을 사용하여 데이터를 관리하는 이유를 알고 싶습니다. 값을 직접 설정하지 않는 이유는 무엇입니까? 도움에 감사드립니다!
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo {
NSManagedObjectContext *context = event.managedObjectContext;
// If the event already has a photo, delete it.
if (event.photo) {
[context deleteObject:event.photo];
}
// Create a new photo object and set the image.
Photo *photo = [NSEntityDescription insertNewObjectForEntityForName:@"Photo" inManagedObjectContext:context];
photo.image = selectedImage;
// Associate the photo object with the event.
event.photo = photo;
// Create a thumbnail version of the image for the event object.
CGSize size = selectedImage.size;
CGFloat ratio = 0;
if (size.width > size.height) {
ratio = 44.0/size.width;
}
else {
ratio = 44.0/size.height;
}
CGRect rect = CGRectMake(0.0, 0.0, ratio * size.width, ratio * size.height);
UIGraphicsBeginImageContext(rect.size);
[selectedImage drawInRect:rect];
event.thumbnail = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Commit the change.
NSError *error = nil;
if (![event.managedObjectContext save:&error]) {
// Handle the error.
}
// Update the user interface appropriately.
[self updatePhotoInfo];
[self dismissModalViewControllerAnimated:YES];
}