1

这是目标 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"

执行上述操作在概念上有什么问题?

PS 我已经知道我应该使用 "c= [NSString stringWithFormat:@"%i",a];"!

4

1 回答 1

3

你不能这样做:

int a = 1;
NSString *c = (NSString*)a;

因为您正在创建一个NSString指向内存地址 0x1 的指针。当您尝试使用(“取消引用”)NSString指针c时,您正在尝试访问不属于您的内存,并且会发生分段错误

编辑:
指向指针基础的好文章的强制性链接

于 2012-05-04T06:55:11.190 回答