iOS单例ViewController与UIImage对象内存优化

用Swift做了一个登录界面。背景是一个全屏幕的UIImageView,用定时器来定时更换图片,点击登录/注册按钮会出现UITextField。为了使用方便简单,比如用户退出登录时、用户令牌超期等情况,直接弹出登录界面——我把这个登录ViewController做成了单例模式。

本文由Swift语言做示例,由于Objective-C和Swift均使用ARC方式管理内存,所以优化思路和方式完全相同,只是相关方法的使用稍有不同。

继续阅读

Objective-C的@property的详细解读

@property在Objective-C中,我们称为属性。它与实例变量有密不可分的关系,从而会涉及到内存管理、KVO等诸多细节问题。

看了很多代码,不少人对使用@property的使用习惯和认识也有一些不合理的地方,所以写这篇文章来谈谈@property的正确使用姿势。

鄙人水平有限,若文章内容存在错误,欢迎您在评论中指正,我会感激不尽。

继续阅读

让你爱上用代码自动布局——SDAutoLayout

在刚开始接触用代码写自动布局的时候,我是拒绝的。相信各位开发者也有同样的困惑——由系统提供的自动布局API臃肿、繁琐;在IB里拖约束呢,多人合作的时候,合并冲突也是个麻烦事。

就我个人而言,由于是独立开发,所以基本使用IB来拖。像知名的Masonry,我也关注过,但SDAutoLayout,我必须要安利一把。她有着更为性感的API。

继续阅读

iOS的Target-Action模式传值的最佳方式

在iOS中,所有的UIControl标准控件使用到最普遍最传统的执行方法的方式就是Target-Action,中文一般称作目标-动作,是比较常用的一种设计模式。它的主要思想就是,在对象产生某个事件的特定时刻,给一个对象发送一个消息。就好像说『当talisk即将吃早饭的时候,swain去煎个蛋』。

其实Target-Action是很好用很方便的一个模式,但其最致命的一个缺点就是传值很麻烦,本文总结下这种模式的传值方式,并给出我认为最好的一个传值方式。

继续阅读

Wear省心天气开发回顾——细数我的第一个应用上架路上的那些坑

Wear省心天气很不容易地上线了,然而就在上线后第二天,我的一些朋友,包括我自己都发现应用有严重bug,点开天气详情就闪退,这几天家人生病住院,我无暇顾及看bug。简单看了下bugly上报的崩溃栈,是天气趋势数据数组溢出,想不明白为什么,调试了下才发现,我真心是替百度APIStore背了锅。想想我这第一个上架的应用开发过程也真是艰辛,开发过程历经无数大小坑,确实有必要来写一写,总结一下这些坑。

继续阅读