[小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)
[小细节,大BUG] 6.问题描述:当从Plist文件加载数据,放入到tableView中展示时,有时有数据,有时又没有数据。这是为什么呢?相信很多大牛都想到了:我们一般将加载的数据,转换成模型,放入到数组中去。然后根据数组,动态的进行数据展示。结果错误就在此:对数组的引用使用了weak,所以造成了数据有时丢失的情况。那么有个细节不知道各位有没有注意到,为什么有时有,有时没有呢?这就关系到XCODE对僵尸对象的处理了,详细介绍请看本博客中的《OC内存管理--zombie对象》
[小细节,大BUG] 5.NSRunLoop细节引发的问题:案例说明:当做“图片轮播器”的时候,使用NSTimer *timer = [NSTimer timerWithTimeInterval: invocation:repeates:];进行定时播放,然而有个问题,就是当与其同处界面的tableView被上下拉动时,轮播器停止滚动,而当停止后,轮播器加速滚动,这是什么原因呢?主要原因是因为在timer与tableView同时执行情况,当拖动tableView时,runloop进入UITrackingRunLoopModes模式下,不会处理定时事件,此时timer不能被处理,所以此时将timer加入到NSRunLoopCommonModes模式(addTimer forMode);即[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
[小细节,大BUG] 4.当你使用storyboard添加一个scrollView时,发现在运行时怎么也无法滚动。这时候就我们能考虑到的因素有哪些呢?第一,storyboard,中autolayout是否勾选去掉(可能性最大);第二,scrollEnabled是否设置为yes(可能性小);第三,userInteractionEnabled,是否设置为yes(可能性最小);第四,contentSize未设置(一般都不会忘)
[小细节,大BUG] 3.另外一个有意思的BUG:当在一个视图中添加UIButton时,发现根本无法点击.此时,你会想到怎样解决吗?检查父控件的userInteractionEnabled?检查按钮的enabled?或者其他的?对,我也这么做了,可最后我被这个BUG玩了,最终经过排查,发现其父控件的frame为CGRectZero!!!这又跟IOS事件传递机制与响应者链有关系.这个错误是在事件传递的过程中出现的问题:要知道事件传递是由UIApplication-->UIWindow....一直到最顶层的子控件,找到最合适的控件来响应,而所谓的合适满足两个条件:一,自己是否能够响应? 二,触摸点是否再自己身上.然后针对子控件进行遍历,重复以上两个步骤.相信到这里大家都明白了吧,就是在第二个条件出现了问题.触摸点不在其父控件身上.所以事件根本没有传递到按钮这里来,造成不能响应的BUG.
[小细节,大BUG] 2.在IOS开发中,大部分人都了解了加载UIImage时,使用[ UIImage imageNamed:]和[UIImage imageWithContentOfFile : ]的主要区别,即前者会缓存图片,造成手机内存飙升而出现应用闪退的现象。后者并不缓存图片。然而,当有人去试着将前者改为后者时,造成了程序崩溃?经排查,原因是因为当构造图象地址时,图片名称的大小写问题.imageNamed:对于图片名称的大小写并不敏感,而imageWithContentOfFile:则严格要求路径的大小写正确.
[小细节,大BUG] 1. 在不久前,一个朋友出现了这样一个BUG:当UITableView加载cell的时候,自定义的cell,怎么显示,里面的文字总是显示不完全(注意,文字不长).然后,我帮忙给看了下,甚至把在storyBoard中将cell的相关属性都试了下,虽然可以解决,但是效果不理想.最终经过排查,终于发现问题所在:当自定义cell时,因为需要布局子控件,所以他重写了layoutSubviews方法,然而在此方法中没有调用[super layoutSubviews],所以造成了布局混乱.再次引以为戒.
(为方便查看,进行倒序更新。。。)
[小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)的更多相关文章
- 微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用
说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音 ...
- [20171120]bash使用here documents的一个小细节.txt
[20171120]bash使用here documents的一个小细节.txt --//昨天看bash文档,,发现一些小细节,做一个记录,就是EOF加引号的问题. command <<' ...
- 微信小程序bug记录与解决
微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工 ...
- web前端体系-了解前端,深入前端,架构前端,再看前端。大体系-知识-小细节
1.了解前端,深入前端,架构前端,再看前端.大体系-知识-小细节 个人认为:前端发展最终的导向是前端工程化,智能化,模块化,组件化,层次化. 2.面试第一关:理论知识. 2-1.http标准 2-2. ...
- 手摸手教你如何在 Python 编码中做到小细节大优化
手摸手教你如何在 Python 编码中做到小细节大优化 在列表里计数 """ 在列表里计数,使用 Python 原生函数计数要快很多,所以尽量使用原生函数来计算. &qu ...
- ASP.NET MVC 自定义路由中几个需要注意的小细节
本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定 ...
- css小细节罗列
有空时候把一些常见可能不是每个人都知道的css小细节总结了下,共勉. 1.line-height 众多周知,line-height是行高的意思,我们时常会使用类似line-height:24px;这样 ...
- HTML 标签小细节
简书地址:https://www.jianshu.com/p/03a23aa28a34 今天重新学习了一下HTML中标签的用法,补充并记录一下自己新学到的知识. a中的href href Contai ...
- ArrayList中的一些小细节@JDK8
ArrayList中的一些小细节@JDK8 protected transient int modCount = 0; 该变量用于记录ArrayList的版本号,不可被序列化,每次对ArrayList ...
随机推荐
- @SuppressWarnings含义
J2SE 提供的最后一个批注是 @SuppressWarnings.该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默. @SuppressWarnings 批注允许您选择 ...
- 轻量级应用开发之(10) UINavigationController导航控制器
一 多控制器 1)一个iOS的app很少只由一个控制器组成,除非这个app极其简单2)当app中有多个控制器的时候,我们就需要对这些控制器进行管理3)有多个view时,可以用一个大的view去管理1个 ...
- HD1385Minimum Transport Cost(Floyd + 输出路径)
Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- Android Studio集成SVN报错:can't use subversion command line client : svn
Android Studio集成SVN插件,check out出代码后,每次开启都会在右上角出现如下错误: Can't use Subversion command line client: svn ...
- Visual Studio IIS Express 不支持.json后缀的mime类型
vs默认web调试工具中并不支持.json后缀的mime类型. 如何解决,两个方案: 局部单应用:web.config: <system.webServer> .... <stati ...
- JavaScript 技巧总结
日期1. 日期时间戳 +new Date() = new Date().getTime() 数组1. 类数组转数组 var arr = Array.prototype.slice.call(argum ...
- UML(5)——协作图
协作图中表示了角色之间的关系,通过协作图限定协作中的对象或链.协作指的是在一定的语境中一组对象以及实现某些行为的对象间的相互作用. 协 作图是表现对象协作关系的图,表示了协作中作为各种类元角色的对象所 ...
- php的urlencode()URL编码函数浅析
URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu.Google等搜索引擎中输入中文查询时候,生成经过Encode过的网页URL. URLEncode的方 ...
- 【原创】angularjs1.3.0源码解析之directive
# Angular指令编译原理 前言 angular之所以使用起来很方便,是因为通常我们只需要在html里面引入一个或多个(自定义或内置的)指令就可以完成一个特定的功能(这也是angular推荐的方式 ...
- IOS: 使用imageIO获取和修改图片的exif信息
使用imageIO获取和修改图片的exif信息 一幅图片除了包含我们能看见的像素信息,背后还包含了拍摄时间,光圈大小,曝光等信息.UIImage类将这些细节信息都隐藏了起来,只提供我们关心的图片尺寸, ...