找不到符号:kUTTypeImage

我从苹果的文档复制了一些代码 – 我得到了这两个错误:

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) 

我究竟做错了什么?

编辑:代码:

 - (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]; } 

我认为错误是最后一种方法开始的地方,但我不确定。

你的post没有太多的上下文来解释代码段; 请更清楚地解释你的情况。

查找符号( kUTTypeImage )并find它应该存在的图像/库(在这种情况下, MobileCoreServices.framework )。 然后将您的二进制文件与该框架链接

强制斯威夫特答案:

 import MobileCoreServices