如图:
这个值是怎么得出来的?
注:这个值还会变。。。
普通类型,像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);