Pru*_*goe 3 xcode linker-errors uiimagepickercontroller ios
Undefined symbols for architecture i386:
"_kUTTypeImage", referenced from:
-[ViewController receiveNotification:] in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我正在向我的应用程序添加一个UIImagePickerController,当我去编译时,我得到了上述错误.我在SO上找到了一个解决方案:
查找符号(kUTTypeImage)并找到它应该存在的图像/库(在本例中为MobileCoreServices.framework).然后将您的二进制文件与该框架链接
问题是,我不确定如何实现它.如何查找符号然后将其链接到框架?
应该注意到我已经导入了MobileCoreServices框架.这是相关的代码:
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController* myCamera = [[UIImagePickerController alloc] init];
myCamera.delegate = self;
myCamera.sourceType = UIImagePickerControllerSourceTypeCamera;
myCamera.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil];
myCamera.allowsEditing = NO;
[self presentModalViewController:myCamera animated:YES];
}
Run Code Online (Sandbox Code Playgroud)


您只需要添加然后将框架导入项目(或者更确切地说,目标).在导航器中,单击您的项目,然后选择目标.然后转到Build Phases选项卡,如果它尚未展开,请展开Link Binary With Libraries.然后添加MobileCoreServices.framework.在要使用kUTTypeImage的文件中,添加以下导入:
#import <MobileCoreServices/MobileCoreServices.h>
请注意,您通常使用尖括号(<>)而不是引号.