注册 登录
主题 : 野指针问题
级别: 新手上路
UID: 608283
精华: 0
发帖: 36
可可豆: 225 CB
威望: 225 点
在线时间: 122(时)
注册时间: 2017-03-13
最后登录: 2017-06-20
楼主 : 发表于: 2017-06-17 15:53    发自: Web Page
来源于 一般讨论 分类

野指针问题   

NSNumber * timeout = [parameters objectForKey:@"timeout"]; 2aN<w'pA  
a->3`c  
unsigned int pingInterval = 5; 0k,-;j,  
         9W ^xlid6  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; 4qi[r)G  
tWeFEVg  
为什么这样做,在第3步报错了呢?报的好像是野指针错误,为什么? eYX5(`c[  
bi4f]^hQz  
NSNumber * timeout = [NSNumber numberWithInt:[[parameters objectForKey:@"timeout"] intValue]]; *hLQ  
Y?J"wdWJNB  
unsigned int pingInterval = 5; 7R4z}2F2  
         4QOEw-~w&s  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; PxS4,`#~  
u"1rF^j6k  
为什么这样没有错误呢?两种写法不是一样的吗?为什么第一种报错,第二种不报错呢?

级别: 侠客
UID: 362848
精华: 0
发帖: 81
可可豆: 108 CB
威望: 108 点
在线时间: 164(时)
注册时间: 2014-08-19
最后登录: 2017-06-23
沙发 : 发表于: 2017-06-19 17:28    发自: Web Page
应该是parameters里面timeout键值不是NSNumber, intvalue消息有一些对象也可以接受,所以你对一个非NSNumber发送unsignedIntValue一般是崩溃的, 而intvalue就不一定
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

验证问题:
苹果公司现任CEO是谁?2字 正确答案:库克

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部