ios - 如何使用此代码在崩溃前捕获错误

标签 ios nsstring

我正在通过音频插孔接收数据。它大部分时间都有效,但是您可以通过它接收错误数据。我希望能够在它崩溃之前捕获错误。这是代码

 - (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/

相关文章:

ios - UITextView : Tapping a universal deep link that should lead to the SAME app, 在 Safari 中打开回退 URL

ios - 为什么我的 Xcode 知道项目目录应该有这些文件?

ios - SVG 转换 ="rotate(x,x,x)"不适用于 iOS

ios - 从命令行运行 'Cedar' 单元测试时出错

php - 如何将包含任何字符的 NSString 获取到我的数据库中?

ios - 追加到 NSString 方法的开头

ios - 如何在 Objective c 中将整数数组转换为 NSString?

ios - 当单元格出现时使用 AutoLayout 为 UITableViewCell 内容设置动画

ios - 为从字符串文字分配的 NSStrings 获取相同的内存地址

ios - json 文件中的 NSString 无法识别撇号