【问题标题】:Request access for camera in Objective-C在 Objective-C 中请求访问相机
【发布时间】:2020-12-03 13:35:05
【问题描述】:

我有这个来自 answer 的 Objective-c 代码,用于请求在 iOS 上使用相机。

[AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted)
    {
      if(granted){
        return true;
      } else {
        return false;
      }
    }];

我收到此错误:

Cannot initialize a parameter of type 'void (^ _Nonnull)(BOOL)' with an rvalue of type 'bool (^)(BOOL)'

什么是错误?

【问题讨论】:

    标签: ios objective-c ios-camera


    【解决方案1】:

    这个completionHandler 的返回类型是void,所以你的return 语句导致了这个问题。

    即使这个完成块有一个BOOL返回值,它也将是接收返回值的iOS方法;不是你的代码。

    我猜您想将结果报告给您的应用。因为这个完成块将被异步调用,所以您需要添加将结果传递给您的应用程序的逻辑。这可以是委托调用,调用您可以在完成处理程序中访问的对象的方法,...

    它是异步的,这意味着您调用它的方法可能已经返回。

    阅读documentation 请注意,可以在任意队列上调用此完成处理程序,如果您正在进行 UI 调用,则有责任移至主队列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-26
      • 2017-10-31
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      相关资源
      最近更新 更多