iOS性能调优总结

##引言
说起性能调优,我本来想说很多,但是觉得枯燥的语言并不能表达我对于性能调优的重视,所以我打算举个不太恰当的例子。

曾经有这么一家工厂,他们的每条产品线需要经过30个工序。
这家公司的老板对底下的员工曾多次强调过质量的重要性,员工们却不以为然,他们觉得自己做的都很不错。
有一次,老板去视察,走到了产品线上的某个节点,问起工人,这个节点的的合格率能达到多少,那个工人自豪的说,”98%!”。老板却并没有十分满意,摇着头走开了。
那位工人非常的疑惑。这么高的合格率,老板为什么还是不满意呢?
于是这位工人就去向领导打听,领导也不知道,于是后来这位工人直接找到了老板家里,向老板请教。
老板很是诧异,于是就给这位工人简单科普了一下,一条产品线是由30个工序组合而成的,所以一个工序的合格率是98%,并不代表最后总的合格率是98%。应该是这样计算最后的合格率的:
$$x = 0.980.980.98… = 0.98^{30} = 0.545$$
所以,这条产品线的合格率实际上只有54.5%。

这个故事说明的问题其实很简单,我们开发的app的最终性能,都是由每一个细小的部分组合而成的,其中很多部分的内容是进行的乘法,而不是加减,所以想要自己设计的app让用户用的爽,任何一个小的性能问题我们都不能忽略。

Read More

多线程开发技巧

引言

在iOS下使用多线程,我们通常会有两种选择,GCD或者NSOperation。这个大家都清楚,但是如何才能使用好多线程进行开发,往往在于开发者是否理解了多线程的原理和使用技巧。
今天,我给大家简单分享一些在iOS下开发时的多线程使用技巧,掌握了这些技巧,能够让大家快速的了解在iOS下的多线程开发方式。

Read More

iOS开发 - 使用自定义字体

上次有个同事问我,XXapp的字体怎么那么萌啊?我也想要搞个萌哒哒的字体!于是,就有了今天这篇blog.

首先,我们在iOS开发中,苹果给我们提供了许多的字体,当然这里我就不列举啦,都是些英文,小汤表示看不懂啦,我要自己搞萌萌哒的字体啊啊啊啊!!!

比如说这样的:

萌萌哒,一看就是少女系啊~!

Read More

Swift版本的图片轮播器框架

由于在开发中,总是要写图片轮播器之类的东东,写的烦了,忍不住就用Swift写了一个非常方便的图片轮播器的框架

https://github.com/SarielTang/CycleView

大家在使用的时候,只需要像这样:

import CycleView

class className : PictureCycleController{

    //override loadView function
    //重写loadViewe方法
    override func loadView() {
        super.loadView()
    }

    var arrayM: [UIImage]?

    override func viewDidLoad() {
        super.viewDidLoad()
        //input an Array with UIImage
        //传入一个UIImage的图像数组
        imageList = arrayM;
    }

}

一个图片轮播器就完成了,是不是很简单呢?赶紧试试吧~如果框架中有什么bug,还请大家多多指教哦.

Read More

Unix系统与Windows系统下的常用命令整理

引言

最近在学OC,打算搞ios开发,开发过程中,免不了使用Mac Os X系统。以前没注意,用了才发现原来苹果的系统是基于Unix开发的,然后,一时手痒,练了练以前学习过的Unix下的命令操作,又想起最近项目中由于网 络问题,老是在windows下进行cmd操作查路由表什么的,忍不住就像把Unix系统和Windows系统下的这些命令行操作好好整理一番。

Read More