cocoaThinking重启计划

我在2015年开通了自己的博客,博客通过hexo+github搭建,博客开通的虽早,但是写作确没有怎么坚持下来,2015年到现在零零散散的写了不到10篇,多数还是在15年趁着刚刚搭建完的热乎劲写成,实在汗颜。2019阴历新年马上就要到了,我决定制定一个cocoaThinking重启计划,一方面写一写技术总结,另一方面也有地方可以写一下日常的生活点滴。
这次博客的重启,我更新了一些必要工具,hexo,node,npm,还有hexo的模板Next,更新的时候我发现node的版本从当时的0.10升级到了11.15,hexo和next也都完成多个版本的升级,不得不感慨时光匆匆,几年的时间过的真快,当时搭建博客的时候和我的同事showndu一起研究讨论问题的场景还是历历在目,这也更坚定了我对这次重启计划的决心。
看了一下自己以前写的文章,多数因为年代久远已经过时了,剩下的几篇比如《iOS常用设计模式》,因为当时的自己较为年轻,写的文章也有很多不足。所以会对之前的文章进行清理,过时的删掉,不足的会进行修改补充。接下来先完成这部分工作吧。

Mehr lesen

iOS9 Search API NSUserActivity

在WWDC2015会议上,苹果公布了iOS9系统,iOS9系统相比iOS7、iOS8并没有特别大得变化,可以看做是iOS8的基础上进行的平滑的过度。但是新的系统中仍有一些特性和功能值得人们去关注,其中
Search API就是其中之一。通过新的Search API可以实现强大的应用内搜索功能,通过在Spotlight中使用我们设计的所以,来查看app中的界面或是内容。

iOS9的 Search API由三个组件组成:

1.NSUserActivity
2.Web Markup
3.Core Spotlight
现在介绍一下NSUserActivity的使用
NSUserActivity是在iOS8中出现的API,主要用户HandOff功能,iOS9中NSUserActivity新增加了一个属性 eligibleForSearch 来控制在Spotlight中的显示

Mehr lesen

NSArray和NSMutableArray

数组作为存储对象的有序集合,可能是平时用到的最多的集合类。NS数组中存放的是Fundation对象,简单类型比如int,float等可以封装为NSNumber对象来存放到数组中。
Objc中数组分为不可变数组和可变数组,可变数组使用NSMutableArray来处理,不可变数组为NSArray,NSMutableArray是NSArray的子类,也就是说继承了NSArray得所有方法

1.创建一个数组

创建一个NSArray

1
2
3
4
5
6
7
NSArray *array = [NSArray arrayWithObjects:@1, @2, @3, nil];

NSMutableArray *array1 = [[NSMutableArray alloc]initWithCapacity:10];

NSMutableArray *array2 = [NSMutableArray array];

NSMutableArray *array1 = [[NSMutableArray alloc]initWithCapacity:0];

使用initWithCapacity方法可以在初始化数组的时候添加一个预留空间,在数组空间超过这个预留空间时候会进行自动追加。不过是再测试中发现这样做并没有提高应有的效率,传言苹果实际上没有采用这个参数。不过这样有个好处是可以做为一个隐性文档来提高代码可读性。

Mehr lesen

iOS常用设计模式

所有的iPhone应用程序都是基于UIKit框架构建而成的,所以它们在本质上具有相同的核心架构。

UIKit框架的设计模式 结合了很多在Mac OS X Cocoa应用程序中使用的设计模式,理解这些设计模式对于创建iPhone程序是很关键的。

1.模型-视图-控制器模式 MVC模式

模型-视图-控制器模式(model-view-controller)简称MVC模式,它将您的代码独立分割为几个部分。模型部分定义应用程序的数据引擎,负责维护数据的完整性;视图定义应用程序的用户界面;控制器则充当模型和视图的桥梁,负责实现数据和现实的更新。

Mehr lesen