type
status
date
slug
summary
tags
category
icon
password
1、unrecognized selector,swift 中尽可能少用 Selector(str: “”) 方法,OC 中对消息转发三个方法中的一个进行交换实现
2、KVO,切面搞一个 manager,交换 addObserver 去做记录,交换 removeObserver 去从记录里取值做空判断,另外无法交互deinit,可以写一个协议,让该类在deinit时实现协议方法,在addObserver时做断言,是否遵守了协议,没遵守debug模式下蹦,release模式不管,协议在deinit时记得调用就好
3、NotificationCenter,交换 addObserver 和 dealloc(deinit参考kvo),addObserver 时加入HashTable,dealloc 时取出,iOS 9 之后不防护也可以
4、Timer,Timer 的 block 方法不需要防护,target 方法可以搞一个target类,进消息转发,或者NSProxy
5、数组,在 OC 中可以交换添加移除和访问的方法做非空判断,Swift 中要写一个自己的 subscript safe 方法,调用自己的 safe 方法访问
6、String,和集合的方法类似
7、野指针,bugly
8、UI not on Main Thread Crash (非主线程刷UI(机制待改善)),就是把 ui 事件放主线程上
9、递归错误,一般也到不了线上。。
手把手教你写一个可以上下滑动点改变值的安卓折线图获取 iPhone 磁盘剩余空间的办法(不应该用旧 api FileManager)