Текущий код объяснения: Приложение 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];
}
}