Table of contents
Swift
Objective-C

Receive Results

Receive Results from DSCapturedResultReceiver

If you only need barcode results, use onDecodedBarcodesReceived.

  • Objective-C
  • Swift
  1. @interface ViewController () <DSCapturedResultReceiver>
    - (void)setUpDCV {
    [self.cvr addResultReceiver:self];
    }
    - (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult *)result {
    // Add your code to use the DSDecodedBarcodesResult
    }
    
  2. class ViewController: UIViewController, CapturedResultReceiver {
    func setUpDCV() {
        cvr.addResultReceiver(self)
    }
    func onDecodedBarcodesReceived(_ result: DecodedBarcodesResult) {
        // Add your code to use the DecodedBarcodesResult
    }
    }
    

If you need multiple result types at the same time, onCapturedResultReceived is more convenient.

  • Objective-C
  • Swift
  1. - (void)onCapturedResultReceived:(DSCapturedResult *)result {
    if (result.items.count > 0) {
        for (DSCapturedResultItem *item in result.items) {
            // Use the captured result items you need here.
        }
    }
    }
    
  2. func onCapturedResultReceived(_ result: CapturedResult) {
    if let items = result.items, items.count > 0 {
        for item in items {
            // Use the captured result items you need here.
        }
    }
    }
    

Receive Results from Capture Methods

The result is returned as a CapturedResult object when using capture methods. You can get the types you want from the CapturedResult object.

  • Objective-C
  • Swift
  1. NSError *error = nil;
    DSCapturedResult *capturedResult = [self.cvr captureFromFile:@"Your file path" templateName:DSPresetTemplateReadBarcodes error:&error];
    DSDecodedBarcodesResult *decodedBarcodesResult = capturedResult.decodedBarcodesResult;
    for (DSBarcodeResultItem *barcodeResultItem in decodedBarcodesResult.items) {
       NSString *barcodeText = barcodeResultItem.text;
       NSString *barcodeFormatString = barcodeResultItem.formatString;
    }
    
  2. let capturedResult = try cvr.captureFromFile("Your file path", templateName: PresetTemplate.readBarcodes.rawValue)
    if let decodedBarcodesResult = capturedResult.decodedBarcodesResult,
       let barcodeResultItems = decodedBarcodesResult.items {
    for barcodeResultItem in barcodeResultItems {
        let barcodeText = barcodeResultItem.text
        let barcodeFormatString = barcodeResultItem.formatString
    }
    }
    

Receive Results from DSIntermediateResultReceiver

To use DSIntermediateResultReceiver, get the DSIntermediateResultManager from DSCaptureVisionRouter first. Then add a result receiver to the intermediate result manager for the intermediate result types you want to observe.

Intermediate results are useful when you need to inspect earlier algorithm stages, debug processing, or build custom workflows based on localized or transformed barcode data.

Related APIs

This page is compatible for: