Сбой Obj-C в сообщении substringWithRange - PullRequest
3 голосов
/ 31 марта 2010

Следующий код вызывает сбой моего приложения в строке 3 без ошибки, которую я узнаю или знаю, как с ней работать. Есть идеи, что я делаю не так?

NSInteger *match = [str1 intValue] + [str2 intValue];
NSString *strrep = [NSString stringWithFormat:@"%i", match];
label.text = [strrep substringWithRange:NSMakeRange(1,3)];

Ответы [ 3 ]

6 голосов
/ 31 марта 2010

Я предлагаю вам разбить строку 3 на две строки, чтобы изолировать проблему.

NSString *result = [strrep substringWithRange:NSMakeRange(1,3)];
label.text = result;

Если бы мне пришлось угадывать, я бы сказал, что лейбл где-то выпущен, а вы пытаетесь присвоить неправильное местоположение.

6 голосов
/ 31 марта 2010

Вы хотите NSInteger match. Нет указателя. (NSInteger - не класс, это просто typedef для int или long в зависимости от цели компиляции.)

Хотя, как ни странно, ваш код, вероятно, все еще будет работать так, поскольку сам указатель будет действовать вместо int.

3 голосов
/ 31 марта 2010

Если длина вашей строки меньше (1 + 3) 4 символов, это приведет к сбою.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...