これはちょっと混乱しています(私にとって)。私はそれから欲しい単一の数字を持つ文字列を持っています。私はこの番号を '/'で囲んだので、あとでその番号を出すことができます。ここで範囲外の部分文字列ですか?
は、私はそれのうち数を取得しています方法です:
if ([MYSTRING hasSuffix:@"mp"]) {
int start = 0;
int end = 0;
char looking = '/';
for(int i=0; i < MYSTRING.length; i++){
if (looking == [MYSTRING characterAtIndex:i]) {
if (start == 0) {
start = i;
}
else{
end = i + 1;
}
}
}
NSLog(@"%@", MYSTRING); //When i NSLOG here i get '2012-06-21 03:58:00 +0000/1/mp', 1 is the number i want out of the string, but this number could also change to 55 or whatever the user has
NSLog(@"start: %i, end: %i", start, end); //When i NSLOG here i get 'start: 25, end: 28'
NSString *number = [MYSTRING substringWithRange:NSMakeRange(start, end)];
number = [number stringByReplacingOccurrencesOfString:@"/" withString:@""];
if ([number intValue] > numberInt) {
numberInt = [number intValue];
}
それがクラッシュし、コンソールが言い続けて:
*キャッチされない例外が原因アプリ「NSRangeException」、理由を終了します: ' - [__ NSCFString substringWithRange:]:範囲外の範囲またはインデックス' *ファーストスローコールスタック: (0x1875d72 0x106ce51 0x1875b4b 0x184ea64 0x3a6c 0x1080713 0x1bf59 0x1bef1 0xd532e 0xd588c 0xd49f5 0x49a2f 0x49c42 0x290fe 0x1b3fd 0x17d2f39 0x17d2c10 0x17ebda5 0x17ebb12 0x181cb46 0x181bed4 0x181bdab 0x17d1923 0x17d17a8 0x18e71 0x200d 0x1f35) のlibC++ abi.dylib:私は範囲をカウントから例外
を投げると呼ばれる終了した範囲内である、私はなぜ私を取得いけませんこのエラーが発生していますか?
ご協力いただければ幸いです。
おかげ
誰かがあなたの質問にかなり素早く答えるつもりですが、私はa.s.a.p.を指摘したいと思いました。 「MYSTRING」のように、変数の名前をすべて大文字(または大文字)にすることは決して*決して*していませんでした。すべての大文字は定数に適しているかもしれませんが、もう一つの好ましいスタイルはKonstantにK(または小文字のk)を付けることです。 –
ああ私はそれだけでそれはあなたの人のために気付いているので、そのコードのようではない – Jacob