作为一名iOS开发者,我以前也是觉得会的语言越多越好,所以先后学了RN、小程序,后来觉的还是基础最重要,底层的东西都是相通的,拒绝花架子,练好内功。底层学习ing……
LLDB 调试器集成于 Xcode 内部并支持 C++ ,Python插件,这里解释了其工作原理。常用命令包括print、expression、call、po(print o...
该文章属于刘小壮原创,转载请注明:刘小壮[https://www.jianshu.com/u/2de707c93dc4] 公司年底要在新年前发一个版本,最近一直很忙,好久没有...
我总结了一下,大家看看对不对
1. 事件传递
产生触摸事件 → UIApplication事件队列 → UIWindow的hitTest:withEvent:→ UIView的hitTest:withEvent: → 子View的hitTest:withEvent: → 子View的hitTest:withEvent:
注:在对象执行hitTest:withEvent:的过程中,如果对象自己的pointInside: withEvent:方法返回NO,就返回nil,否则开始查找所有的子View,一旦没有子View或者子View全部返回nil,就会把自己作为最合适View返回,UIWindow拿到最合适的View
2. 事件分发
UIApplication sendEvent: → UIWindow sendEvent: → 最合适的view开始响应
3. 事件响应
根据事件类型调用对应方法,以touchBegan为例:
最合适的view touchesBegan: withEvent: → 所在ViewController touchesBegan: withEvent:→ parentView touchesBegan: withEvent: → ... → UIWindow touchesBegan: withEvent: → UIAplication touchesBegan: withEvent: → AplicationDelegate touchesBegan: withEvent: → 结束
注:如果某个View或ViewController未调用super touchesBegan: withEvent:则响应结束
虽然这么高的赞,但是我可以说下真的很啰嗦吗?不是讲的多讲的深的啰嗦,是很多重复的。比如响应者链和事件传递分别出现了4次和3次。真的没必要这么重复的。已赞!
感觉没有说的特别清楚。
1、每次 Runloop 开始的时候,会创建一个 autoreleasepool,也就是说所有的代码都是包含在 pool 中的。
2、手动创建是为了将 pool 中不用的对象提前释放,而不是等着隐式的 pool 自己释放,避免对象堆积
前言 提到iOS的内存泄漏检测,第一个想到的应该就是Instruments的Leaks检测模版。不过使用过的人一般都会觉得这个检测不准确,有时候明明泄露了,但是它却检测不出来...
问题: App Store规定安装包大小超过150MB的App只能在WIFI环境下载。现在项目App包已经超过这条线,这意味着可能将损失大量用户,需要对其进行瘦身 App现状...
项目代码放在https://github.com/SlashDevelopers/SDTheme,这个方案是从实际项目中剥离而来的,大家使用中遇到什么问题或者有什么赐教欢迎随...
好记星不如烂笔头,写一写记录下。 一. 用到的API 转发功能API参考微信官方,列下常用的onShareAppMessage(options)在返回值中设置转发的title...
如果简书再给我推荐的垃圾文章,我真的要卸载了