有没有办法从AVMetadataMachineReadableCodeObject获取二进制数据或获取stringValue的正确编码?
答案 0 :(得分:0)
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
AVMetadataMachineReadableCodeObject *object = [metadataObjects lastObject];
在这个方法中,我们得到的对象“可能”是一种AVMetadataMachineReadableCodeObject,然后
object.stringValue
我们得到二进制数据。
但是,有时我们可能得到一个对象是一类“AVMetadataFaceObject” 它定义了检测到的面部的特征......并且没有stringValue的属性。
我们可以写这个以避免错误:
if (![object isKindOfClass:[AVMetadataMachineReadableCodeObject class]]) return;