Runtime是什么

动态 vs 静态语言

Objective-C 是一门面向运行时的语言,也就是说,它把对将要执行什么的推断工作从编译&链接时延后到了运行时。所以你可以根据需要来将消息分发给合适的对象,或者是在运行时交换方法的实现。要实现这些,运行时就必须检查对象,判断对象可以做什么,不可以做什么,然后进行恰当的方法分发。

继续阅读

假设,你在GitHub上托管了项目,但是发现你最近的一次提交出了错。你想要撤销这个提交,那么应该怎么做呢?

假设5c24e50是这次错误提交的SHA,58c4e50是离这次提交最近的一次提交,在命令行下输入如下命令即可从5c24e50回退到58c4e50:

git push origin +58c4e50:master

原文链接见这里

Objective-C 提供了两种内存管理的方法,一是 ARC ,即 Automatic Reference Counting,二是 MRR,即 Manual Retain-release。苹果官方推荐的方法是 ARC,因为使用 ARC 时,我们不需要考虑这些复杂的管理过程,编译器会在编译时自动帮我们加上对应的代码。

继续阅读

本篇文章介绍下KVC的基本使用。

下面是Apple官方文档中对Key-value coding(以下简称为KVC)的定义:

Key-value coding is a mechanism for accessing an object’s properties indirectly, using strings to identify properties, rather than through invocation of an accessor method or accessing them directly through instance variables.

在应用中使用 KVC 是一条重要的设计原则,因为它是 KVO、Core Data、Cocoa Binding等技术的基础,同时也可以简化代码。

继续阅读