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

野指针问题   

NSNumber * timeout = [parameters objectForKey:@"timeout"]; 0v6(A4Y  
@ k+Z?Hp  
unsigned int pingInterval = 5; qh}M!p2  
         3/a$oO  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; T&Dt;CSF  
A*l (0`aWq  
为什么这样做,在第3步报错了呢?报的好像是野指针错误,为什么? ;0*T7l  
Mf0!-bu  
NSNumber * timeout = [NSNumber numberWithInt:[[parameters objectForKey:@"timeout"] intValue]]; tln* Baq  
s@C KZ`  
unsigned int pingInterval = 5; _nw=^zS  
          V[D[MZ  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; RqTW$94RD  
*&p `8:  
为什么这样没有错误呢?两种写法不是一样的吗?为什么第一种报错,第二种不报错呢?

级别: 骑士
状态: 连续签到 - [3天]
UID: 362848
精华: 0
发帖: 313
可可豆: 364 CB
威望: 358 点
在线时间: 433(时)
注册时间: 2014-08-19
最后登录: 2017-10-19
1 楼:  发表于: 2017-06-19 17:28    发自: Web Page
应该是parameters里面timeout键值不是NSNumber, intvalue消息有一些对象也可以接受,所以你对一个非NSNumber发送unsignedIntValue一般是崩溃的, 而intvalue就不一定
级别: 新手上路
UID: 608283
精华: 0
发帖: 43
可可豆: 277 CB
威望: 277 点
在线时间: 152(时)
注册时间: 2017-03-13
最后登录: 2017-08-25
2 楼:  发表于: 2017-08-11 11:33    发自: Web Page
为什么呢?
描述
快速回复

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

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

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