Hallo Ich arbeite mit einem alten Projekt mit einigen Validierungsregel.iOS Ziel c substringToIndex Absturz
Mein Problem mit wenigen Barcode-Scan-Zeichenfolge, die weniger als bestimmte Zeichen hat. das Programm wird für die folgende Codezeile abstürzen
if ([[sBarcodeValues substringToIndex:6] isEqualToString:@"2C2C2P"]){
}
Hier ist das Fehlerprotokoll (unten ist Bildausschnitt enthalten)
2016-12-22 14:51:56.019324 SAMKiosk[1008:476815] -[ScanAndPayVC checkBarCodeDetail]: sBarcodeValues 11.10
2016-12-22 14:51:56.019839 SAMKiosk[1008:476815] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSTaggedPointerString substringToIndex:]: Index 6 out of bounds; string length 5'
*** First throw call stack:
(0x1889611b8 0x18739855c 0x188961100 0x189386e80 0x1002ad930 0x1002a8320 0x1002a5bb8 0x19019ca54 0x19019c5f0 0x18b2b1d94 0x18b2d0dcc 0x10070d218 0x100719334 0x100727f94 0x10070f300 0x10071a8ac 0x100710ce0 0x10071205c 0x18890e810 0x18890c3fc 0x18883a2b8 0x18a2ee198 0x18e87a7fc 0x18e875534 0x1000e0414 0x18781d5b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
sein kann, weil String nur enthalten 5 Zeichen, wenn die Prüfung erfordert 6. Wie können wir verhindern, dass dieser Absturz passiert? Hilfe ist sehr zu schätzen. danke
Sie greifen direkt auf einen Bereich zu, der länger ist als die Länge der Zeichenfolge – Joshua
Sie können versuchen, if ([sBarcodeValues containsString: @ "2C2C2P"]) ' – iphonic
@iphonic Nein, das ist nicht die gleiche Prüfung. – rmaddy