分类: iOS开发小记

5 篇文章

NSNotificationCenter研究小记
1.NSNotificationCenter对observer的引用是弱引用,即引用计数不会增加。 2.在iOS 9之前,这个引用类似于unsafe_unretained,observer对象被销毁后不会被置为nil,因此接收到通知时会导致野指针而崩溃。 3.在iOS 9以上,这个引用类似于weak,即使没有执行removeObserver方法,在…
如何从2亿个随机整数中找出中间值?
看到这个问题时,相信大多数人都会想:“这不是很简单嘛,先排序,然后最中间那个数不就是了?” 好像很有道理,但是大家往往忽略了一个问题,2亿个32位的整数就要占用4GB的内存空间,而内存空间往往不像我们想象中的那么充裕。 “那么,使用归并排序呢?每次先排序小部分。”,归并排序有一个不可避免的问题,虽然排序一小部分的时候占用的内存较小,但是总归是要合并…
thumbnail
iOS扫描12位数条形码却拿到了个13位的条形码怎么办?
在工作中遇到了这个一个问题,我们的APP中有扫描条形码的功能,但是最近由用户反应扫描条形码查询不到信息,到数据库中查了发现用户上传的条形码是以0开头的13位条形码。 随后根据用户的描述,在某东上找到了该商品的条形码(上图),发现该条形码只有12位而使用我们的APP扫描得到的条形码却是0300087234016,不难看出其实前面多出了一个0。 这好办…
32位CPU(iPhone5)出现的NSInteger溢出问题
在我们的APP中,有一处地方展示的是“生日”,这个生日数据是请求服务器返回的数据,在上一个版本发布之后陆续地有用户反馈说每次修改完生日就变成了1969年或1970年的日期,与后台的哥们沟通了之后发现,APP传给服务器的参数有时候甚至可能是负的(参数是毫秒数)。 那一天我们几乎花了一整天的时间去复现这一个Bug,然而并没有找到原因,直到下午五点…… …
iOS如何统计中英文混合的字符串字节数
有时候我们在开发过程中,服务端使用了varchar来保存字符串,这时候如果直接用字符串的.length属性获得字符串长度的话可能会导致字符串在服务端数据库中被截断。比如varchar(256)可以存储128个汉字或者256个英文字母,而你上传的字符串超过了128个汉字的长度。但是我们也不能直接判断字符串的length是否小于等于128,因为当字符串…