我试图从几个不同的部分制作一个字符串.以下是我现在所拥有的我的代码中没有任何错误,但是一旦我运行它,并做触发它的事件,我得到EXC_BAD_ACCESS.有没有另外一种方式将这个NSInteger转化为NSString?
NSString *part1,*part2,*tempString; NSInteger num1; NSInteger num2; part1=@"some"; part2=@"text"; tempString = [NSString stringWithFormat:@"%@%@%@%@",part1,(NSString *)num1,part2,(NSString *)num2];
解决方法
一个字符串和一个整数是基本不同的数据类型,在这种情况下,在Objective-C中的转换将不会为你做一个转换,而是在编译器中介绍发生了什么的事情(所以编译),但是在运行时它会吹动向上.
您可以使用%d而不是%@将一个整数直接嵌入到格式字符串中:
tempString = [NSString stringWithFormat:@"%@%d%@%d",num1,num2];
NSInteger只是一个常见的“int”(数字)的花哨名字. NSString是字符串对象的对象引用.一些数字类型(int和浮点)可以像C这样直接在C之间进行转换,但是这两个数据类型根本不可互操作.听起来你可能来自一个更宽容的语言?