3
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)

我在我的应用程序中添加了一个 UIImagePickerController,当我去编译时,我得到了上述错误。我找到了一个解决方案:

未找到符号:kUTTypeImage

查找符号 (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];

            }

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

6

您只需要添加框架,然后将其导入您的项目(或者更确切地说,目标)。在导航器中,单击您的项目,然后选择一个目标。然后转到 Build Phases 选项卡,如果尚未展开,请展开 Link Binary With Libraries。然后添加 MobileCoreServices.framework。在要使用 kUTTypeImage 的文件中,添加以下导入:

#import <MobileCoreServices/MobileCoreServices.h>

请注意,您使用尖括号 (<>) 而不是通常使用的引号。

于 2012-12-20T16:18:49.250 回答