in Architecture

在应用层面上,很多情况下计算机对于内存和存储器的操作都是高度抽象的,我们不必去关心其内部是如何工作的。但是总有那么些情况下,需要我们去了解其中的奥秘。在几年前开发aoFont的时候,就遇到了文件字节序(Endianness)问题,即大端序(Big endian)、小端序(Little endian)的问题。也就是需要读取的字体文件是以大端序存储的,但是iOS设备CPU使用的是小端序,这样以来直接读取出来的数据是错误的,需要对读取出来的数据进行处理。

Read More
in iOS

在开发过程中,常见到这样的写法:[NSDictionary dictionaryWithDictionary:otherDict][otherDict copy]。在很多情况下,我们甚至不用去考虑两种方法的异同,随机地选择用哪个方法。但二者又确确实实地有着些许不同。

Read More
in iOS

__attribute__指令在C、C++和Objective-C中修饰一段代码,用处一是为编译器提供上下文,用处之二是为未来看到这段代码的人(包括自己)提供额外的信息。__attribute__指令对编译器优化有重要意义,并且对于开发者来说一定程度的额外信息是有积极意义的。在开发过程中可以发现苹果的SDK中已经普遍运用了__attribute__指令。

Read More
in iOS

Key-value coding (KVC)是非直接地访问通过字符串访问Property的机制。这种机制下,我们通过键值对的形式来访问对象的属性,形式上类似于字典的操作。

Read More
in iOS

得益于Runtime系统,Objective-C将许多工作由编译时推迟到运行时进行。当然,这样的方式会牺牲掉部分性能,但却为这个语言带来了不少灵活性。其灵活性造就的黑魔法之一便是Method Swizzling。通过此方法,我们能够在程序运行时动态地将某个方法的实现与其他的实现交换。

Read More
in 碎碎念

printf("Hello, World!");

突然才发觉已经很久没上自己的博客了,也更久没有更新自己的博客了。原本买了域名,开设了此博客,就是为了记录自己的学习、生活,但渐渐地却忘了初心,把这块地方遗忘在角落里,连当前的模板也是一年前写了一半遗留下来的。

不小心翻到了这个之前写了一半的模板,突然有了继续维护这儿的冲动。于是继续整合了Jekyll,放在了Github上。

一切重新开始,未来此博客将会主要集中在iOS开发上面,偶尔扯扯淡,就这样继续记录下我的学习之路。

Read More