Obj-C在substringWithRange消息上崩溃

cod*_*gar 3 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)];
Run Code Online (Sandbox Code Playgroud)

Nic*_*ore 6

你想要的NSInteger match.没有指针.(NSInteger不是一个类,它只是一个typedef intlong取决于你的编译目标.)

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


Ama*_*mer 6

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

NSString *result = [strrep substringWithRange:NSMakeRange(1,3)];
label.text = result;
Run Code Online (Sandbox Code Playgroud)

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