Zbar Scanner symbol.data сравнение iPhone Сканер - PullRequest
0 голосов
/ 23 ноября 2011

Текущий код объяснения: Приложение iPhone включает ZBar SDK для сканирования штрих-кода. Первый штрих-код возвращается, и я отправляю symbol.data (информация о штрих-коде) в updateTotal. В updateTotal я проверяю, является ли сканированный штрих-код тем, который я ищу (объявлен как matchBarcode.) В этом случае, если штрих-код на самом деле тот, который я ищу, он отображает предупреждение с отсканированный штрих-код, говорящий так. Если нет, отображается предупреждение о неправильном штрих-коде.

Проблема: Независимо от того, какой штрих-код сканируется, он возвращает значение, отличное от строки matchBarcode.

Мои мысли : Я подумал, что это связано с тем, что штрих-код (symbol.data) не является строкой NSSt, но в ZBar SDK он утверждает, что это так. Я работал над этим некоторое время и не могу понять это. Я уверен, что это глупая ошибка. Пожалуйста, помогите.

Текущий код:

- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
    // ADD: get the decode results
    id<NSFastEnumeration> results =
    [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        // EXAMPLE: just grab the first barcode
        break;

    [self updateTotal:symbol.data];

    NSLog(@"%@", symbol.data);
    // ADD: dismiss the controller (NB dismiss from the *reader*!)
    [reader dismissModalViewControllerAnimated: YES];
}




    -(void)updateTotal:(NSString *)barcode
    {
        // Barcode I am looking for
        NSString *matchBarcode = @"FoundBarcode";
        // Barcode Comparison
        if (barcode == matchBarcode) {
            // Alert stating this IS the barcode you are looking for
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Correct Barcode" message:barcode delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
            [alert show];
            [alert release];
        } else {
            // Alert stating this is not the barcode you are looking for
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Barcode" message:barcode delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
            [alert show];
            [alert release];
        }
    }

1 Ответ

0 голосов
/ 23 ноября 2011

Используйте метод isEqualToString для NSString.

if( [barcode isEqualToString: matchBarcode]){}
...