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

野指针问题   

NSNumber * timeout = [parameters objectForKey:@"timeout"]; Yi?v |H<a  
B"Ma<"HU  
unsigned int pingInterval = 5; un F=";9H  
         wS7nTZfw  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; pi|=3W  
^`S.Mw.  
为什么这样做,在第3步报错了呢?报的好像是野指针错误,为什么? f6,?Yex8B  
29HyeLB@  
NSNumber * timeout = [NSNumber numberWithInt:[[parameters objectForKey:@"timeout"] intValue]]; OWys`2W  
'NNfzh  
unsigned int pingInterval = 5; Et! 6i7`]  
         ew.jsa`TrW  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; `N}aV Ns  
~@\sN+VS  
为什么这样没有错误呢?两种写法不是一样的吗?为什么第一种报错,第二种不报错呢?

级别: 侠客
状态: 未签到 - [3天]
UID: 362848
精华: 0
发帖: 139
可可豆: 180 CB
威望: 175 点
在线时间: 245(时)
注册时间: 2014-08-19
最后登录: 2017-08-23
沙发 : 发表于: 2017-06-19 17:28    发自: Web Page
应该是parameters里面timeout键值不是NSNumber, intvalue消息有一些对象也可以接受,所以你对一个非NSNumber发送unsignedIntValue一般是崩溃的, 而intvalue就不一定
级别: 新手上路
UID: 608283
精华: 0
发帖: 42
可可豆: 267 CB
威望: 267 点
在线时间: 152(时)
注册时间: 2017-03-13
最后登录: 2017-08-22
板凳 : 发表于: 2017-08-11 11:33    发自: Web Page
为什么呢?
描述
快速回复

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

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

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

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