这是目标c中的强制转换运算符的正确用法:
//casting an int to float
int a = 1;
float b = (float) a;
为什么我不能使用以下内容将int转换为nsstring:
int a = 1;
NSString *c = (NSString *)a;
//I receive the error : "cast of 'int' to 'nsstring' is disallowed with ARC"
上述做法在概念上有什么不妥?
P.S。我已经知道我应该使用“c = [NSString stringWithFormat:@”%i“,a];”!
答案 0 :(得分:3)
你不能这样做:
int a = 1;
NSString *c = (NSString*)a;
因为您正在创建一个指向内存地址0x1的NSString
指针。当您尝试使用(“取消引用”)NSString
指针c
时,您正在尝试访问不属于您的内存,并且会发生segmentation fault。