为什么你可以做这样的事情?
NSInteger something = @"something";
这不会引发错误,而是返回一些实际上是NSInteger的数字,这感觉很奇怪。
答案 0 :(得分:0)
对我而言,它说 指向整数转换的不兼容指针初始化' NSInteger' (又名' int')表达式为' NSString *'
我觉得,你得到的是该NSString的内存地址。
答案 1 :(得分:0)
在与目标C类似的语言中,当您定义类或常量字符串时(您定义的内容如@"something"
是一个常量字符串),它将被存储在某处并使用指向它的指针。指针是32位和64位。 32位指针是32位整数,因此可以很容易地将它们转换为整数。所以没有办法抛出错误,因为这是一个合法的任务。
答案 2 :(得分:0)
这是同一行代码
NSInteger something = [@"something" integerValue];