以下代码使我的应用程序在第3行崩溃而没有出现我会识别或知道如何处理的错误。关于我做错了什么想法?
NSInteger *match = [str1 intValue] + [str2 intValue];
NSString *strrep = [NSString stringWithFormat:@"%i", match];
label.text = [strrep substringWithRange:NSMakeRange(1,3)];
答案 0 :(得分:6)
你想要NSInteger match
。没有指针。 (NSInteger不是类,它只是int
或long
的typedef,具体取决于您的编译目标。)
虽然,奇怪的是,你的代码可能仍然会像这样工作,因为指针本身将代替int。
答案 1 :(得分:6)
我建议你将第3行分成两行,以便隔离问题。
NSString *result = [strrep substringWithRange:NSMakeRange(1,3)];
label.text = result;
如果我不得不猜测,我会说标签可能已经在某个地方发布了,而你正试图分配到一个不好的位置。
答案 2 :(得分:3)
如果您的字符串长度小于(1 + 3)4个字符,则会崩溃。