Obj-C在substringWithRange消息上崩溃

时间:2010-03-30 21:42:08

标签: iphone objective-c iphone-sdk-3.0

以下代码使我的应用程序在第3行崩溃而没有出现我会识别或知道如何处理的错误。关于我做错了什么想法?

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

3 个答案:

答案 0 :(得分:6)

你想要NSInteger match。没有指针。 (NSInteger不是类,它只是intlong的typedef,具体取决于您的编译目标。)

虽然,奇怪的是,你的代码可能仍然会像这样工作,因为指针本身将代替int。

答案 1 :(得分:6)

我建议你将第3行分成两行,以便隔离问题。

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

如果我不得不猜测,我会说标签可能已经在某个地方发布了,而你正试图分配到一个不好的位置。

答案 2 :(得分:3)

如果您的字符串长度小于(1 + 3)4个字符,则会崩溃。