IOS: ошибка в HomeDirectory - PullRequest
       15

IOS: ошибка в HomeDirectory

0 голосов
/ 14 октября 2011

У меня есть этот код

NSString *nextSequentialFile =
    [filePath stringByReplacingOccurrencesOfString:photoNumber
    withString:[NSString stringWithFormat:@"%d", (index + 1)]
    options:NSBackwardsSearch
    range:[filePath rangeOfString:photoNumber options:NSBackwardsSearch]];

но у меня есть эта ошибка, и я не понимаю, потому что это происходит.

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFString replaceOccurrencesOfString:withString:options:range:]: Range or index out of bounds'

Ответы [ 3 ]

1 голос
/ 14 октября 2011

Попробуйте:

NSString *nextSequentialFile =
[filePath stringByReplacingOccurrencesOfString:photoNumber
withString:[NSString stringWithFormat:@"%d", (index + 1)]
options:NSBackwardsSearch
range:NSMakeRange(0, filePath.length)];
0 голосов
/ 14 октября 2011

Никогда не предполагайте, что такие методы, как rangeOfString:options:, возвращают допустимый диапазон.Из документов:

Возвращаемое значение

Структура NSRange, указывающая местоположение и длину в получателе первого вхождения aString, по модулю параметров в маске, Возвращает {NSNotFound, 0}, если aString не найден или является пустым (@ "").

[Акцент добавлен]

Так что сначала получите диапазони проверьте наличие NSNotFound, прежде чем пытаться его использовать.

0 голосов
/ 14 октября 2011

Вероятно, что rangeOfString:photoNumber выходит за пределы допустимого диапазона. Я бы порекомендовал записывать каждое из значений, которые вы передаете этому методу, чтобы определить, в чем ошибка.

...