NSString *str = @"12345";
NSString *subString0 = [str substringFromIndex:-1]; //会放生越界错误
NSString *subString1 = [str substringFromIndex:0]; //12345
NSString *subString2 = [str substringFromIndex:1]; //2345
NSString *subString3 = [str substringFromIndex:4]; //5
NSString *subString4 = [str substringFromIndex:5]; //
NSString *subString5 = [str substringFromIndex:6]; //会放生越界错误
NSString *subString10 = [str substringToIndex:-1]; //会放生越界错误
NSString *subString11 = [str substringToIndex:0]; //
NSString *subString12 = [str substringToIndex:1]; //1
NSString *subString13 = [str substringToIndex:4]; //1234
NSString *subString14 = [str substringToIndex:5]; //12345
NSString *subString15 = [str substringToIndex:6]; //会放生越界错误
NSRange range1 = NSMakeRange(-1, 5);
NSRange range2 = NSMakeRange(0, 6);
NSRange range3 = NSMakeRange(0, 5);
NSRange range4 = NSMakeRange(1, 4);
NSRange range5 = NSMakeRange(0, 0);
NSRange range6 = NSMakeRange(4, 1);
NSString *subString31 = [str substringWithRange:range1]; //会放生越界错误
NSString *subString32 = [str substringWithRange:range2]; //会放生越界错误
NSString *subString33 = [str substringWithRange:range3]; //12345
NSString *subString34 = [str substringWithRange:range4]; //2345
NSString *subString35 = [str substringWithRange:range5]; //
NSString *subString36 = [str substringWithRange:range6]; //5
NSString *subString0 = [str substringFromIndex:-1]; //会放生越界错误
NSString *subString1 = [str substringFromIndex:0]; //12345
NSString *subString2 = [str substringFromIndex:1]; //2345
NSString *subString3 = [str substringFromIndex:4]; //5
NSString *subString4 = [str substringFromIndex:5]; //
NSString *subString5 = [str substringFromIndex:6]; //会放生越界错误
NSString *subString10 = [str substringToIndex:-1]; //会放生越界错误
NSString *subString11 = [str substringToIndex:0]; //
NSString *subString12 = [str substringToIndex:1]; //1
NSString *subString13 = [str substringToIndex:4]; //1234
NSString *subString14 = [str substringToIndex:5]; //12345
NSString *subString15 = [str substringToIndex:6]; //会放生越界错误
NSRange range1 = NSMakeRange(-1, 5);
NSRange range2 = NSMakeRange(0, 6);
NSRange range3 = NSMakeRange(0, 5);
NSRange range4 = NSMakeRange(1, 4);
NSRange range5 = NSMakeRange(0, 0);
NSRange range6 = NSMakeRange(4, 1);
NSString *subString31 = [str substringWithRange:range1]; //会放生越界错误
NSString *subString32 = [str substringWithRange:range2]; //会放生越界错误
NSString *subString33 = [str substringWithRange:range3]; //12345
NSString *subString34 = [str substringWithRange:range4]; //2345
NSString *subString35 = [str substringWithRange:range5]; //
NSString *subString36 = [str substringWithRange:range6]; //5