我从apple's documentation复制了一些代码-我得到了这两个错误:

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

我认为错误是从最后一个方法开始的,但我不确定.

您的帖子没有太多上下文来解释代码部分;请更清楚地解释您的场景.

推荐答案

查找符号(kUTTypeImage)并定位它应该存在的图像/库(在本例中为MobileCoreServices.framework).然后将您的二进制文件与该框架链接起来.

Ios相关问答推荐

使用NavigationStack和.searchable时如何显示大型导航标题?

如果条件不满足,S从@ViewBuilder返回什么?

在许多UIButton中对齐文本,即使SF Symbols(或其他图像)具有不同的宽度?

带有故事板的Xcode 15 UIKit视图可以与#Preview宏一起使用吗?

如何根据SWIFT中的按钮点击更新文本值

视图未更新以在按下按钮时显示另一个视图

在iOS中使用Swift,即时更改应用语言后,立即改变外观会出现问题

SwiftUI 故障/错误 - 在 LazyVStack 和 ScrollView 中使用 AVPlayer 时状态栏不显示

如何更改 SwiftUI 弹出视图的大小?

归档时命令 PhaseScriptExecution 失败,退出代码非零

iOS 16.4 更新后 Xcode 14.3 构建错误:找不到 libarclite_iphoneos.a,链接器命令失败

如何在 SwiftUI 中创建两个大小相同的正方形占据整个屏幕宽度?

在 Swift 中使用 UITesting 捕获屏幕录像

VStack 显示错误实例方法 'sheet(item:onDismiss:content:)' 要求 'Int' 符合 'Identifiable'

包装在 AnyView 中时 UIViewControllerRepresentable 无法正常工作

Swift枚举继承

UIView 和 initWithFrame 以及一个 NIB 文件.如何加载 NIB 文件?

直接下载Xcode模拟器

Xcode:此时无法安装此应用程序.

在 NSUserDefaults 中保存图像?