Category 的加载处理过程
在这篇博客 iOS 程序 main 函数之前发生了什么 有中提到,_objc_init
这个函数是 runtime 系统的初始化函数,于是我们可以直接从 _objc_init
这个函数开始进行分析, Category 加载过程中的函数调用顺序如下:
1 | void _objc_init(void); |
爆裂吧现实,粉碎吧精神,放逐这个世界!
在这篇博客 iOS 程序 main 函数之前发生了什么 有中提到,_objc_init
这个函数是 runtime 系统的初始化函数,于是我们可以直接从 _objc_init
这个函数开始进行分析, Category 加载过程中的函数调用顺序如下:
1 | void _objc_init(void); |
[TOC]
1 | @interface BankAccount: NSobject |
currentBalance
/owner
/transactions
都是 BankAccount
的属性。owner
属性是一个对象,和BankAccount
构成一对一的关系,owner对象中的属性改变后并不会影响到owner本身。
为了保持封装,对象通常为其接口上的属性提供访问器方法(accessor methods)。在使用访问器方法时必须在编译之前将属性名称写入代码中。访问器方法的名称成为使用它的代码的静态部分。例如: [myAccount setCurrentBalance:@(100.0)];
这样缺乏灵活性,KVC提供了使用字符串标识符访问对象属性的更通用的机制。
[TOC]
CocoaPods 是一个用 Ruby 写的、负责管理iOS项目中第三方开源库的工具,CocoaPods 能让我们集中的、统一管理第三方开源库,为我们节省设置和更新第三方开源库的时间。
下面就正式开始安装 CocoaPods,命令中间可能有空格看不出来,建议直接复制粘贴执行;
因为 Mac 电脑自带 Ruby 环境,我们就只需打开终端开始动手。然而又因为默认情况下我们 MacOS 系统自带的 Ruby 环境版本比较低(大概是 2.0.0 或者其他较高版本),但是现在安装 CocoaPods 需要 2.2.2 版本及以上的,所以我们不管三七二十一先直接先升级 Ruby。
1 | // 触摸开始 |