关于网友提出的“ OC中对象强转到基本数据类型的值是怎么来的?”问题疑问,本网通过在网上对“ OC中对象强转到基本数据类型的值是怎么来的?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: OC中对象强转到基本数据类型的值是怎么来的?
描述:如图:

这个值是怎么得出来的?
注:这个值还会变。。。
解决方案1:普通类型,像int、bool、double、枚举等,都是要封装成对象放到容器(NSArray、NSDictionary)里,对象和普通类型是不能加个(int)这个强转的,这时这时把对象当指针来处理,也就是得到指针的值,也是指针指向内存的地址。NSString转int用[a intValue]。
解决方案2:array.firstObject是@"1", 是一个NSStrng对象, (int)NSString对象的意思是取对象地址
进行强转为int
由于NSSring是存在内存的数据区, 所以以下代码打印结果是一样的
NSString *str = @"1";
NSArray *arr = @[@"1"];
int a = (int)str;
int b = (int)arr.firstObject;
NSLog(@"a = %zd",a);
NSLog(@"b = %zd",b);
以上介绍了“ OC中对象强转到基本数据类型的值是怎么来的?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4527825.html