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

时间:2014-09-30 19:47:44

标签: 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];

   }

有很多原因导致读者的数据不好。我希望它只是通过一般性错误并让用户重新刷卡。

1 个答案:

答案 0 :(得分:2)

您可以假设数组中对象的存在或字符串的长度,例如:

[[text componentsSeparatedByString:@"="] objectAtIndex:1]

您可能希望执行类似

的操作
NSArray *components = [text componentsSeparatedByString:@"="];
if (components.count > 1) {
    subString = [components objectAtIndex:1];
} else {
    // Display error to user and return
}

您不希望假设数组具有某个索引或字符串是一定长度,始终执行检查,如果您的代码失败,则显示您想要的任何错误并返回。