前两天碰到了一个问题,今天解决了,虽然不是自己解决的,但是问题已经解决了。我相信我以后不会被这个问题难倒了,也不会出现这样的问题了。
我的问题是:我在做APP的时候,提交的是修改地址信息,但是返回的数据失败,出错了。因为是别人做过的,所以我先对了一下链接,一样的啊,复制粘贴试了一次,但是还是出错了。那么就要查请求的参数了,我就看他返回的参数有哪些,我复制他提交请求的数据,用字典把这些做参数传上去,但是还是出错了。
最后在表姐夫的帮助下,开始找问题,先是看链接,没问题。然后看返回的参数,一样,也没有问题。最后,看了一下上传的参数,一看是NSString类型,我说不对啊,我一开始的时候就是NSString的,怎么还是出错了(这里说明一下,因为有返回的接口文档,所以,我知道是什么类型的)。我想着肯定是一样的,因为我一开始就给他是NSString的。
但是,我取回来的时候就已经错了,下面是请求的数据。
{
data = {
deliveryId = 72;
};
header = {
clientRes = iOS;
msgType = setDefaultAddress;
timestamp = "2016-03-23 15:42:56";
token = 1b382ebdbc1e489dbc39003649b2251934060303966586280010944992359077;
};
}
NSString *deliveryid= data[@"deliveryid"];
我用这样获取到数据,他不是要NSString类型吗,我给它。但是表姐夫跟我说不是接收的是什么类型,它就是什么类型的。因为deliveryid的类型是NSNumber类型,赋值给了NSString类型,所以没起到效果。挺简单的一个问题,就是没去思考,这样不好。
总结:取出来的是什么类型就是什么类型,不管你赋值给什么类型的对象,本身的类型不会改变。就像例子中的,取出来本身是NSNumber类型的,赋值给NSString类型了。虽然提交的时候也是相同的数,但是,它的格式已经出错了,所以提交的时候总是失败的。以后转换类型的时候一定要看清楚,是什么类型就给什么类型,这样就不会出错了。
以后碰到问题,
一、要想是什么原因,把自己认为最有可能的问题试一下,把自己认为是的都验证一下,还是没有解决,那就动用工具。
二、百度,百度上各种各样的问题都有,当然回答也是各种各样的,有的是我要的答案,有的不是,就回答了。在百度中,找到答案有不理解的,把不理解的重新百度,到理解为止。还是不理解的,可以笔记下来,问表姐夫。
三、最后,把解决问题的答案写在笔记中,还原之前的想法。原模原样的把问题纪录下来,这样更加方便的理解和复习。在记录的过程中还可以重现复习一遍,相当于巩固了,这是一个不错的学习方式。今天开始按照这样的形式来完成,通过笔记的方式记录每天的问题,ok,GoodBay!