下面是来自Zbar SDK的代码,它允许您扫描条形码。读取条形码后,条形码号码将出现在界面的文本框中。在哪里看到resultText.text = symbol.data是条形码解码信息并允许条形码出现在textView框中的位置。所以基本上,因为无论条码解码放在resultText.text,我添加了“如果”条件:如何为resultText.text编写“if”条件?
if ([symbol.data = 04176400]) {
resultText.text = @"This is a sprite bottle";
}
的精灵瓶的条形码是04176400.所以我想要的文字:“这是一个精灵瓶子”出现而不是04176400,这是瓶子上的条形码。但是,上面的这个“如果”条件不起作用。 Xcode显示错误“赋值为只读属性”。我相信我的“如果”条件是完整的,虽然它看起来是合乎逻辑的。我应该放置什么而不是这个,我很无能。以下是整体处理条形码数据的代码。
- (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];
}
这是真的,除非他想比较字符串(他可能不知道他的条形码是怎么进来的),他应该使用isEqualToString。 – sosborn 2012-07-24 00:20:33
正确,或'if([symbol.data == @“04176400”])'也可以。 – Anthony 2012-07-24 00:23:57
不,这不起作用,因为它比较指针,这可能是不同的。始终对字符串使用isEqualToString。 – sosborn 2012-07-24 00:42:44