以下は、バーコードをスキャンできる Zbar SDK のコードです。バーコードが読み取られると、インターフェイスの textView ボックスにバーコード番号が表示されます。resultText.text = symbol.data が表示される場所は、バーコードが情報をデコードし、バーコードが textView ボックスに表示されるようにする場所です。基本的に、バーコードがデコードしたものはすべてresultText.textに配置されるため、「if」条件を追加しました:
if ([symbol.data = 04176400]) {
resultText.text = @"This is a sprite bottle";
}
スプライト ボトルのバーコードは 04176400 です。そのため、ボトルのバーコードである 04176400 の代わりに、「これはスプライト ボトルです」というテキストを表示する必要がありました。ただし、上記の「if」条件は機能しません。Xcode は、「読み取り専用プロパティへの割り当て」というエラーを表示します。私の「if」条件は論理的に見えますが、完全に間違っていると思います。以下は、バーコード データ全体を処理するコードです。
- (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;
// EXAMPLE: do something useful with the barcode data
resultText.text = symbol.data;
//THIS IS THE FAULTY CODE.
if ([symbol.data = 04176400]) {
resultText.text = @"This is a sprite bottle";
}
// setup our custom overlay view for the came
// ensure that our custom view's frame fits within the parent frame
// EXAMPLE: do something useful with the barcode image
resultImage.image = [info objectForKey: UIImagePickerControllerOriginalImage];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
//Delete below in entirety for continuous scanning.
[reader dismissModalViewControllerAnimated: YES];
}