前言

在开发中,我们经常会遇到一些需要,让我们从集合中查找某个值,从集合中过滤想要的内容等等,因而我们就需要遍历集合,加条件判断,然后获取符合条件的值。而关于集合的遍历是所有软件开发从业人员经常打交道的一些事情。

把范围缩小到iOS开发中,关于集合地遍历的方法就有好多种,人们一直在讨论和争辩,想寻找出一种最快最有效的方法,是用for循环,还是block,是用并发操作,还是顺序操作,等等。甚至有人不惜使用大数据量来测试各种遍历方式的效率以及精确度

然而我认为寻找并选择一种自己认为合适的操作是最好的,简单地几个数据的集合,就用到普通的for循环,基于大数据量的遍历就需要用到并发操作。

Read More

前言

在形形色色的APP设计中,“Select All“功能得细节设计尤为不同。移动端的设计精髓就在于将主要的功能完美得展示给用户,而不能给用户带来使用的复杂度和概念上得困惑。大多数的App将"Select All"这个feature与分页功能排斥展示,这就是细节上的体验,因而在大数据量的页面中,正常人并不会加入"Select All"这个feature。

Read More

前言

最近接到了一项没有时间限制却比较重的任务,要对app进行UI上的重构。由于产品年代已久,而且UI也是相当得陈旧了,我们也没有直接地产品经理,所以难度可以想象。在这里我们每个开发人员都算是一个产品经理,这大概也是好多开发者期望得把。

产品设计

一个好的产品必须有一个好的设计,所以我开始从网上汲取一些软件设计的知识,作为一个尚未入门的设计师,我首先推荐一篇启蒙的博客:一个门外汉的产品设计漫谈。而在CocoaChina上面也将产品设计单独做出了一个分类,上面贴出了许多与产品设计的主流趋势相关的博客,欣赏之下,的确发人深省。有了好的设计理念,然后再有一个好的设计工具,如此设计出来的产品必将生动形象,受人欢迎。

Read More

前言

UIAlertController是iOS 8之后提供的一个继承自UIViewController的视图控制器,主要是修改了UIAlertViewUIActionSheet的显示以及处理逻辑,摒弃了旧形式,提供了更加强大的操作方法。它将UIAlertViewUIActionSheet整合到一起,并且添加了对block的支持。本篇文章我们就具体讲一下UIAlertControlelr的使用。

Read More

前言

自从Apple官方SDK中,引入了ARC的概念后,在iOS开发时的内容管理变得不在是难题,原来的手动管理内容的工作全部交由编译器来做。

ARC(Atomic Reference Count),简述就是自动引入计数,而我们这篇文章主要叙述的也是Objective-C语言中,影响“引用计数”的属性参数和变量关键字。

Read More

前言

借用一下Apple官方的话,"出于性能考虑,一个表视图的单元必须是可复用的"。重用cell的机制是利用缓冲池,将可重用的cell保存起来,显示cell时,先从缓冲池中取,如果缓冲池中没有此类的cell,也就是没有可重用的cell,此时就会重新初始化一份cell,并且加到缓冲池中。

Read More

前言

我们在这一篇继之前的文章,记录另外一种更简单得使用多线程的方式,那就是GCD(Grand Central Dispatch)。GCD是libdispatch(Apple库)的代名词,为多核设备的并发处理和应用程序的性能优化提供了良好的支持。学习GCD之前,希望大家可以先温顾一下我在“多线程基础”这篇文章中提到的一些基础概念:队列串行与并行同步与异步。GCD使用C语言编写的一套提供并发处理的函数库,对于C语言熟悉的朋友,理解和使用起来应该会更简单。

Read More

前言

在前几篇中,我们讲述了多线程的基础概念和在iOS开发中应用多线程的方法。我们在这一篇继续讨论在iOS开发中使用多线程的一种方式,使用NSOperationNSOperationQueueNSOperation的实例代表一个任务,默认封装了需要执行的操作和数据,从而简化了我们很多的操作,我们不必在关心底层的线程的运行和状态,只需要把精力放在我们需要执行的操作上。

Read More