Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 未找到符号:kUTTypeImage_Ios_Objective C_Linker Errors_Mobilecoreservices - Fatal编程技术网

Ios 未找到符号:kUTTypeImage

Ios 未找到符号:kUTTypeImage,ios,objective-c,linker-errors,mobilecoreservices,Ios,Objective C,Linker Errors,Mobilecoreservices,我从中复制了一些代码,我得到了以下两个错误: Undefined symbols for architecture i386: "_kUTTypeImage", referenced from: -[ImagePicker imagePickerController:didFinishPickingMediaWithInfo:] in ImagePicker.o ld: symbol(s) not found for architecture i386 clang: error:

我从中复制了一些代码,我得到了以下两个错误:

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];
}
-(iAction)显示SavedMediaBrowser{
[自启动MediaBrowserFromViewController:自启动
使用委托:(id)self];
}
-(BOOL)startMediaBrowserFromViewController:(UIViewController*)控制器
usingDelegate:(id)delegate{
如果(([UIImagePickerController]资源类型可用:
UIImagePickerControllerSourceTypeSavedPhotosAlbum]==否)
||(委托==零)
||(控制器==零)
返回否;
UIImagePickerController*mediaUI=[[UIImagePickerController alloc]init];
mediaUI.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum;
//从中显示保存的图片和电影(如果两者都可用)
//相机卷相册。
mediaUI.mediaTypes=
[UIImagePickerController可用于源类型的中间类型:
UIImagePickerControllerSourceTypeSavedPhotosAlbum];
//隐藏用于移动和缩放图片的控件,或用于
//剪辑电影。若要显示控件,请使用“是”。
mediaUI.allowsEditing=是;
mediaUI.delegate=委托;
[controller presentViewController:mediaUI动画:是完成:无];
返回YES;
}
-(无效)imagePickerController:(UIImagePickerController*)选择器
didFinishPickingMediaWithInfo:(NSDictionary*)信息{
NSString*mediaType=[info objectForKey:UIImagePickerControllerMediaType];
UIImage*原始图像,*编辑图像,*图像使用;
//处理从相册中拾取的静止图像
if(CFStringCompare((uu桥u保留的CFStringRef)媒体类型,kUTTypeImage,0)
==KCFComparequalto){
EditeImage=(UIImage*)[info objectForKey:
UIImagePickerControllerEditedImage];
originalImage=(UIImage*)[info objectForKey:
UIImagePickerController原始图像];
如果(编辑图像){
imageToUse=编辑图像;
}否则{
imageToUse=原始图像;
}
//用imageToUse做点什么
}
[[picker parentViewController]解除ModalViewController激活:是];
}
我认为错误在于最后一个方法的起始位置,但我不确定


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

查找符号(
kUTTypeImage
)并找到它应该存在的图像/库(
MobileCoreServices.framework
)。然后将二进制文件链接到该框架。

答案:

import MobileCoreServices

UIDocumentPickerViewController一起使用时,请执行以下操作:

导入MobileCoReserves
let type=String(kUTTypeImage)
让documentPickerViewController=UIDocumentPickerViewController(documentTypes:[类型],位于:。导入)

也不要忘记导入标题!显然,我把CoreFoundation和MobileCoReserves联系起来了,而不是把@import MobileCoReserves;如果您不想导入框架并完成所有令人讨厌的工作(这不是您的错),我已经阅读了在
UIImagePickerController
上可以找到的所有文档,他们谈论使用
kUT*
来处理
媒体类型
,但在他们的示例代码中,他们通常只是将一个函数的值传递给数组。他们从来没有在他们的代码中实际使用它,他们也没有提到您需要导入它。