注:这里所说的开发环境包括IDE、SDK和运行环境等等
1. 我讨厌crash,因此诸如divided by 0, index out of bounds, not responding to selector等错误,拜托能不能不要crash呢。。。
以前看过一些争论,认为这些东西不同于obj-c的send message to nil,就应该设计为crash。我则有不同的看法。个人觉得对于相当一部分展示和交互类程序而言,crash是最不好的用户体验。我觉得完全可以让编译器提供一两个编译选项,使得这些错误就和Assert一样,仅发生在debug模式下,而在release模式下,简单的返回0或者nil就很好。
解决方案1:index out of bounds的错误,可用method swizzling的hack解决。不过总归不是正道。
2. view(tableviewcell)获得自己的lifecycle回调。现在仅有viewcontroller有viewDidLoad、viewWillAppear、viewDidAppear等lifecycle的回调。以前view和tableviewcell有一个layoutSubviews的回调,还可以用用。但是iOS9上,这个函数居然在deqeueReuseableCell时(真正绘制view之前)就被调用了,真是让人无所适从。
3. xcode自动补全时,仅提示当前类的interface(我指public methods, properties, etc),其父类、祖父类的interface,则放在二级子菜单中,更好的展示调用类的interface以及类之间的层级关系。不知道有没有plugin做这个事情,也许该去找找,类似这个帖子的问题(http://stackoverflow.com/questions/12360517/xcode-autocompletion 或者 http://stackoverflow.com/questions/2593177/taming-xcodes-auto-complete-options)
4. 以后继续补
上面的几条,如果有解决方法,还请赐教。