1.Cocoa是什么?

Cocoa是OS X和 iOS操作系统的程序的运行环境。

2.Cocoa框架是什么?

Cocoa框架泛指苹果提供的开发API。
iOS中,Cocoa众多框架中最重要最基本的两个框架是:FoundationUIKit
Foundation 和界面无关,也可以说和界面无关的类基本是Foundation框架的,和界面相关的是UIKit框架。

2.1.UIKit组织架构

福音,但是貌似很旧了的,UICollectionView都还没,至少是IOS6以下的。
所有的UIKit都集成了NSObjec类。
NSObject不但是个类名,NSObject也是个协议的名称,参考NSObject协议 , NSObject协议指定了根类必须实现的接口。奠定了Object-c的基础,生命周期、动态运行时

2.2.Foundation框架组织



转载自:Cocoa 框架 For iOS(一) 框架的介绍

3.Cocoa对象创建过程

每次创建对象我们都会alloc和init。他们的作用是什么?
alloc是开辟一个内存空间,init是初始化。至于为什么要分开,是为了方便构造后初始化不同的方法

创建过程:
1、先要调用父类的初始化方法
2、检查父类初始化返回的对象,如果是nil则初始化失败,也返回nil
3、在初始化实例变量时,如果它们是其他对象的引用,必要时要进行retain和copy
4、如果返回一个已存在的对象,那首先释放新分配的对象
5、遇到问题初始化不成功(比如初始化文件失败),返回nil
6、如果没有问题,返回self。初始化完成

1
2
3
4
5
6
7
8
-(instancetype)init{
if (self = [super init]) {
//初始化XXX
self.name = @"mo";
return self;
}
return nil;
}