使用PlistBuddy命令动态修改APP名称

当一个工程里面包含多个target且每个target都有本地化的名称,一般做法是为每个target配备一个InfoList.strings文件。随着target数量和支持的语种增多,InfoList.strings文件数量也增加,更改和管理target名称也会变得复杂。

Read more

KVO的缺陷

最近在学习和研究Cocoa库的KVO特性,期间发现大神Mike Ash的一篇关于讲述KVO缺陷的博客,觉得很有学习价值,遂想试着翻译以加深理解。

Read more

两个特殊函数+load和+initialize

记得还在上一家公司任职的时候,在研发部的探讨会会上就“+load的加载过程”这一议题有过激烈的讨论,大家各执一词,争得面红耳赤。最终是部门老大专门做了一期讲解,才平息了这场争执。但是那时候的讲解并未涉及到源代码分析,而是基于测试代码做的分析,故我并没有完全理解。

在苹果开发文档中提及到:+load是在类或者分类被添加到runtime的时候被调用,而+initialize则是在类的用实例方法或者类方法第一次被调用之前调用。

上面的说明只是说明了这两个函数调用时机,但是并没有涉及父类、子类和分类之间的调用顺序和相互影响,于是试着结合apple公司的开源代码objc4-532.2试着分析这两个函数的加载过程,以加深理解。

Read more

Objective-C Category 深入浅出系列-第1话

Objective-C Category(分类)之于我而言有种神秘感,虽然自己已经在实际开发过程中已经多次使用它,且感受到了它带来的便利与高效。但是我却仅仅是停留在对它的基本使用层面,除此之外一无所知。我能感觉它的强大,心中也一直有种对它内部实现一探究竟的冲动,奈何迟迟没有行动。时间愈久,这种情绪愈发浓烈,今天终究是按耐不住了…

Read more

揭开ARC的神秘面纱系列-第2话

原文地址

以下是正文:

写完第一篇关于揭开ARC神秘面纱的博客,我想和大家分享另外一些有趣的片段。这一次我好奇当你通过函数返回一个存在数组中的对象时会发生什么。非ARC模式,你可能会对这个对象retain一次再返回一个自动释放的对象。ARC模式下,我们虽然可以免去这些内存管理的操作,但还是不放心,觉得别扭。因此,我决定检测一下ARC是否做到位了。

Read more