请求访问 Objective-C 中的相机
Request access for camera in Objective-C
我从这个 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)'
错误是什么?
此 completionHandler
的 return 类型是 void
,因此您的 return
语句导致了问题。
即使这个完成块有一个 BOOL
return 值,它也会是 iOS 方法接收 return 值;不是你的代码。
我猜您想将结果报告回您的应用程序。因为这个完成块将被异步调用,所以您需要添加将结果传递给您的应用程序的逻辑。这可以是委托调用,调用您在完成处理程序中可以访问的对象的方法,...
它是异步的,这意味着您调用它的方法可能已经 returned.
阅读 documentation 请注意,可以在任意队列上调用此完成处理程序,如果您正在进行 UI 调用,则您有责任移至主队列。
我从这个 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)'
错误是什么?
此 completionHandler
的 return 类型是 void
,因此您的 return
语句导致了问题。
即使这个完成块有一个 BOOL
return 值,它也会是 iOS 方法接收 return 值;不是你的代码。
我猜您想将结果报告回您的应用程序。因为这个完成块将被异步调用,所以您需要添加将结果传递给您的应用程序的逻辑。这可以是委托调用,调用您在完成处理程序中可以访问的对象的方法,...
它是异步的,这意味着您调用它的方法可能已经 returned.
阅读 documentation 请注意,可以在任意队列上调用此完成处理程序,如果您正在进行 UI 调用,则您有责任移至主队列。