问题: 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);

上一篇包含ab但不包含a
下一篇ijkplayer 获取视频播放的时间
明星图片
相关文章
《 OC中对象强转到基本数据类型的值是怎么来的?》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)