ios - 使用未声明的标识符 'startCameraControllerFromViewController'

标签 ios uinavigationcontroller uiimagepickercontroller

我有一个打开相机应用程序的按钮,以便用户可以将其保存为 UIImage。我收到使用未声明的标识符错误,但我不知道为什么。任何帮助,将不胜感激。

#pragma mark - Camera Button

- (IBAction)cameraButton:(id)sender {
    [self startCameraControllerFromViewController:self usingDelegate:self];
}


#pragma mark - Save picture callbacks

- (void) image:(UIImage *) image didFinishSavingWithError:(NSError *)error contextInfo:(void *) contextInfo {
    if(error) {



#pragma mark - Get picture by taking picture

- (BOOL) startCameraControllerFromViewController: (UIViewController*) controller usingDelegate: (id <UIImagePickerControllerDelegate, UINavigationControllerDelegate>) delegate {
    if (([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera] == NO) || (delegate == nil) || (controller == nil))
        return NO;

    UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
    cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;

    cameraUI.delegate = delegate;
    [controller presentViewController:cameraUI animated:YES completion:nil];
    return YES;
}

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage * image = info[UIImagePickerControllerOriginalImage];
    _label.text = [NSString stringWithFormat:@"Have image: %d x %d", (int) image.size.width, (int) image.size.height];
    _imageView.image = image;
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void) imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [self dismissViewControllerAnimated:YES completion:nil];
}

    }
}

@end

最佳答案

看起来只是一个语法错误:

- (void) image:(UIImage *) image didFinishSavingWithError:(NSError *)error contextInfo:(void *) contextInfo {
    if(error) {



#pragma mark - Get picture by taking picture

永远不要关闭 if 语句两边的大括号。

将其更改为:

- (void) image:(UIImage *) image didFinishSavingWithError:(NSError *)error contextInfo:(void *) contextInfo {
    if(error) {
        NSLog(@"Error saving image: %@", error);
    }
}

#pragma mark - Get picture by taking picture

关于ios - 使用未声明的标识符 'startCameraControllerFromViewController',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25224341/

相关文章:

android - Flutter UI 损坏了第一个屏幕

ios - Xcode 错误 - 由于未捕获的异常 'NSUnknownKeyException' 导致应用程序终止,原因 : '[ setValue:forUndefinedKey:]:

ios - 无法弹出 viewController

ios - 在 Swift 中,如果我有一个 UITabBarController,我如何在切换选项卡之前弹出我当前的 navigationController?

ios - 以编程方式从编辑器获取导航 Controller > 嵌入 > 导航 Controller

ios - 如何更改在 Xcode UI 测试 (XCUITest) 中获取快照所需的时间?

ios - 使用自动布局居中 UIButton 和 UILabel

ios7 - iOS 7 和 iOS 8 中 UIImagepickercontroller 的相机 View 上的状态栏重叠

ios - Swift 3 - 如何在应用程序中使用照片库图片?

ios - UIImagePicker 拍照时旋转错误