我正在通过音频插孔接收数据。它大部分时间都有效,但是您可以通过它接收错误数据。我希望能够在它崩溃之前捕获错误。这是代码
- (void) updateBytCtl:(NSString*) text {
// NSLog(text);
NSString *subString = [[text componentsSeparatedByString:@"="] objectAtIndex:0];
NSString *expDateString = [[text componentsSeparatedByString:@"="]objectAtIndex:1];
NSString *expDate = [expDateString substringToIndex:4];
NSString *expDateYear = [expDateString substringToIndex:2];
NSString *expDateMonth = [expDate substringFromIndex:2];
subString = [[subString componentsSeparatedByString:@";"] objectAtIndex:1];
}
读取器数据可能有问题的原因有很多种。我希望它只是通过一般错误并让用户重新刷卡。
最佳答案
任何你对数组中对象的存在或字符串的长度做出假设的地方,例如:
[[text componentsSeparatedByString:@"="] objectAtIndex:1]
你会想做类似的事情
NSArray *components = [text componentsSeparatedByString:@"="];
if (components.count > 1) {
subString = [components objectAtIndex:1];
} else {
// Display error to user and return
}
您不想假设数组具有特定索引或字符串具有特定长度,请始终执行检查,如果您的代码失败,则显示您想要的任何错误并返回。
关于ios - 如何使用此代码在崩溃前捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26128888/