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

野指针问题   

NSNumber * timeout = [parameters objectForKey:@"timeout"]; ]m 3cm  
xgIb6<qwY  
unsigned int pingInterval = 5; 6?M/7 1  
         Aj cKz  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; }1 qQ7}v  
Het"x  
为什么这样做,在第3步报错了呢?报的好像是野指针错误,为什么? uNuFD|aQ.  
8493Sw  
NSNumber * timeout = [NSNumber numberWithInt:[[parameters objectForKey:@"timeout"] intValue]]; l]zQSXip  
o#wly%i')  
unsigned int pingInterval = 5; \v-I<"::  
         MhHh`WUGh  
unsigned int  pingLoops = [timeout unsignedIntValue] / pingInterval; s;oe Qa}TB  
v^o`+~i  
为什么这样没有错误呢?两种写法不是一样的吗?为什么第一种报错,第二种不报错呢?

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

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

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

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