Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symbol not found: kUTTypeImage

I copied some bits of code from apple's documentation- and I got these 2 errors:

Undefined symbols for architecture i386:   "_kUTTypeImage", referenced from:       -[ImagePicker imagePickerController:didFinishPickingMediaWithInfo:] in ImagePicker.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

What am I doing wrong?

EDIT: The code:

- (IBAction) showSavedMediaBrowser {     [self startMediaBrowserFromViewController: self                                 usingDelegate: (id)self]; }  - (BOOL) startMediaBrowserFromViewController: (UIViewController*) controller                                usingDelegate: (id <UIImagePickerControllerDelegate,                                                UINavigationControllerDelegate>) delegate {      if (([UIImagePickerController isSourceTypeAvailable:           UIImagePickerControllerSourceTypeSavedPhotosAlbum] == NO)         || (delegate == nil)         || (controller == nil))         return NO;      UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];     mediaUI.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;      // Displays saved pictures and movies, if both are available, from the     // Camera Roll album.     mediaUI.mediaTypes =     [UIImagePickerController availableMediaTypesForSourceType:      UIImagePickerControllerSourceTypeSavedPhotosAlbum];      // Hides the controls for moving & scaling pictures, or for     // trimming movies. To instead show the controls, use YES.     mediaUI.allowsEditing = YES;      mediaUI.delegate = delegate;      [controller presentViewController:mediaUI animated:YES completion:nil];     return YES; }  - (void) imagePickerController: (UIImagePickerController *) picker  didFinishPickingMediaWithInfo: (NSDictionary *) info {      NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];     UIImage *originalImage, *editedImage, *imageToUse;      // Handle a still image picked from a photo album     if (CFStringCompare ((__bridge_retained CFStringRef) mediaType, kUTTypeImage, 0)         == kCFCompareEqualTo) {          editedImage = (UIImage *) [info objectForKey:                                    UIImagePickerControllerEditedImage];         originalImage = (UIImage *) [info objectForKey:                                      UIImagePickerControllerOriginalImage];          if (editedImage) {             imageToUse = editedImage;         } else {             imageToUse = originalImage;         }         // Do something with imageToUse     }      [[picker parentViewController] dismissModalViewControllerAnimated: YES]; } 

I think the error is where the last method starts, but I'm not sure.

Your post does not have much context to explain the code sections; please explain your scenario more clearly.

like image 979
Lior Pollak Avatar asked Apr 13 '12 16:04

Lior Pollak


1 Answers

Look up the symbol (kUTTypeImage) and locate the image/library it should exist in (MobileCoreServices.framework in this case). Then link your binary with that framework.

like image 161
justin Avatar answered Oct 06 '22 01:10

justin