利用plist文件查看后台返回数据的数据类型
2016-11-04 14:52
204 查看
当看客看到标题的时候或许会有些疑惑,有的人甚至会鄙视写者。查看后台返回的数据类型为什么要用plist文件,这也太麻烦了吧。我既然写这篇博客,肯定是有一定的原因的,它也必然有一定的价值。接下来让写者慢慢道来(实际内容也不多)。
要想看后台返回的数据类型,一般后台在给我们接口的时候都会在接口文档中标明返回的数据的数据类型(这在接口定义中我们一般都会和后台进行商量以及最后的确定)。如果有些接口后台没有或忘记在接口文档中给出返回的数据以及数据类型我们还可以利用网上的一些解析工具将接口中的数据进行解析如:http://json.cn这个在线解析工具。如果只是以上两种情况,我也就不会写这篇博客了,我之所以要写这篇博客是因为我遇到了第三种情况:接口中的数据类型改了,并且后台没有和我们说。这第三种情况就让人很是无奈,甚至气愤。
简说本人经历:本人之前的程序是可以正常运行的,可就隔了一天再次运行程序却发现程序崩溃。程序崩溃这应该所有程序猿比较烦恼的一件事,但这也是家常便饭。在发现这种程序崩溃的时候,我就隐约感到可能是后台那边出了问题(因为之前这种情况出现多次,后台改了接口)。可首先还是得先查bug ,看问题到底出在哪里。我首先看后台返回的数据,发现数据和之前的一样,并没有发生像之前的缺数据或多数据的问题。于是打了全局断点(Exception
breakPoint),可断点并没有定位到出现问题的位置,而是跑到了main函数中,在控制台打出了[__NSCFNumber length]: unrecognized selector sent to
instance 0x8b3c310’ - andy_she的错误,看来是某个NSNumber类型的数据使用了NSNumber这个类没有的方法。NSNumber?我有的惊讶,我好像没有用过NSNumber类型的数据啊,想了良久,矛头还是指向了后台,难道后台返回了NSNumber类型的数据,可是之前商量都是NS
String类型的数据啊,况且之前也使用了,程序没有问题。可为了确定是后台问题再去找后台问问,于是又去查看后台返回的数据。本App是包含用户登录功能的,此接口需要用户登录之后才能有数据,因此如果直接在浏览器中查看此接口返回的数据是没有数据的,需要在控制台打印出后台返回的数据。可在控制台看不出返回的数据到底是NS
String类型的还是NSNumber类型的(第三种情况)。我于是将获取到的JSON数据写到一个plist文件中,查看返回的数据的数据类型。方法:[dataDic
writeToFile:@"/Users/liangseb/Desktop/plist/1.plist" atomically:YES];
这样在程序运行完成后就可以打开在桌面上的plist文件查看后台返回的数据的数据类型了。最后发现果然还是后台的问题,后台竟然直接改了数据类型,并且没有通知我。于是去找后台。
实际方法很简单,本篇博客写的东西比较多的是本人的经历过程,看客可以看下我的坎坷经历,我平时写技术性博客废话并不多,可对于这种问题遇到过好多次了,心里真的不爽,写在这里算是发泄一下吧。看客只需看到方法就行了。
经历过这样的bug后,相信再遇到这样的问题,我会很快找到问题所在。所谓的大牛都是经历过无数的bug的,都是在bug中成长起来的。不能打败我的bug只能使我变得更加强大,希望自己变得越来越强。加油!
要想看后台返回的数据类型,一般后台在给我们接口的时候都会在接口文档中标明返回的数据的数据类型(这在接口定义中我们一般都会和后台进行商量以及最后的确定)。如果有些接口后台没有或忘记在接口文档中给出返回的数据以及数据类型我们还可以利用网上的一些解析工具将接口中的数据进行解析如:http://json.cn这个在线解析工具。如果只是以上两种情况,我也就不会写这篇博客了,我之所以要写这篇博客是因为我遇到了第三种情况:接口中的数据类型改了,并且后台没有和我们说。这第三种情况就让人很是无奈,甚至气愤。
简说本人经历:本人之前的程序是可以正常运行的,可就隔了一天再次运行程序却发现程序崩溃。程序崩溃这应该所有程序猿比较烦恼的一件事,但这也是家常便饭。在发现这种程序崩溃的时候,我就隐约感到可能是后台那边出了问题(因为之前这种情况出现多次,后台改了接口)。可首先还是得先查bug ,看问题到底出在哪里。我首先看后台返回的数据,发现数据和之前的一样,并没有发生像之前的缺数据或多数据的问题。于是打了全局断点(Exception
breakPoint),可断点并没有定位到出现问题的位置,而是跑到了main函数中,在控制台打出了[__NSCFNumber length]: unrecognized selector sent to
instance 0x8b3c310’ - andy_she的错误,看来是某个NSNumber类型的数据使用了NSNumber这个类没有的方法。NSNumber?我有的惊讶,我好像没有用过NSNumber类型的数据啊,想了良久,矛头还是指向了后台,难道后台返回了NSNumber类型的数据,可是之前商量都是NS
String类型的数据啊,况且之前也使用了,程序没有问题。可为了确定是后台问题再去找后台问问,于是又去查看后台返回的数据。本App是包含用户登录功能的,此接口需要用户登录之后才能有数据,因此如果直接在浏览器中查看此接口返回的数据是没有数据的,需要在控制台打印出后台返回的数据。可在控制台看不出返回的数据到底是NS
String类型的还是NSNumber类型的(第三种情况)。我于是将获取到的JSON数据写到一个plist文件中,查看返回的数据的数据类型。方法:[dataDic
writeToFile:@"/Users/liangseb/Desktop/plist/1.plist" atomically:YES];
这样在程序运行完成后就可以打开在桌面上的plist文件查看后台返回的数据的数据类型了。最后发现果然还是后台的问题,后台竟然直接改了数据类型,并且没有通知我。于是去找后台。
实际方法很简单,本篇博客写的东西比较多的是本人的经历过程,看客可以看下我的坎坷经历,我平时写技术性博客废话并不多,可对于这种问题遇到过好多次了,心里真的不爽,写在这里算是发泄一下吧。看客只需看到方法就行了。
经历过这样的bug后,相信再遇到这样的问题,我会很快找到问题所在。所谓的大牛都是经历过无数的bug的,都是在bug中成长起来的。不能打败我的bug只能使我变得更加强大,希望自己变得越来越强。加油!
相关文章推荐
- java 通过url取得文件返回InputStream类型数据的工具类
- 后台返回一个string类型的json格式数据,前台js如何读取?
- servlet返回application/json数据类型在ie浏览器中提示下载文件问题
- iPhone开发之UITableView的小试牛刀 利用MVC模式从plist文件读取数据并字典转模型的格式实现
- 利用Struts2框架,将后台数据转化为JSON数据并返回到前台
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及文件上传的部分
- 利用Servlet上传文件(在servlet中处理MIME类型的post数据)
- 【iOS开发-74】解决方式:Xcode6下利用preference保存数据,终于的plist文件在哪里?
- 利用JS将后台返回的数据分页展示
- json 解析double类型多出几位小数,利用NSDecimalNumber修复 , 服务器返回的数据,用数据类型接收(int,NSNumber)?
- domino利用AJAX取后台数据并返回到页面
- .net利用ajax返回后台数据
- 谷歌应用支持查看返回数据类型
- 与后台返回数据类型老是出错(文档和现实老是对接不上)
- application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型
- Extjs的数据读取器store和后台返回类型简单解析
- 【iOS开发-74】解决方案:Xcode6下利用preference保存数据,最终的plist文件在哪里?
- .net利用ajax返回后台数据时xmlHttp.status=500
- txt文件参数化200用户,返回在表格中查看只能看到100行数据
- Ajax前台返回JSON数据后再Controller中直接转换成类型使用,后台接收json转成实体的方法