1. Objective-C简介
80年代出现 , C + Smalltalk == OC
OC ==> Objective-C 2.0
NeXT : Unix + UI ==> Mac OS ==> iOS
库和工具 ==> Cocoa
iOS开发库和工具 ==> Cocoa Touch
2. 编译器
gcc: GNU C Compile
LLVM : Apple LLVM Compile 4.1
clang : 命令行编译器
3.各种源程序文件的后缀名(扩展名)
.c C语言源程序文件
.cpp .ccC++语言
.m Objective-C
.mm Objective-C++
.h 头文件
.sh Shell脚本
--------------------------------------------
.a Unix/Linux 静态库文件
.so Unix/Linux 共享库(动态库)文件
.o object文件,编译生成的二进制文件
4.第一个 OC程序
#import <Foundation/Foundation.h> //#include
Foundation框架(framework 库)
NSLog : 日志输出函数
5.布尔值
C: 用int来当布尔类型使用
0代表逻辑假,非0代表逻辑真。
bool
OC:
BOOL YES, NO
YES是1, NO是0,对BOOL变量尽量不要赋其他的值,最好只给YES/NO.
6. 面向对象编程
6.1 基本概念
用解决现实中问题的办法来解决计算机问题。
6.2 对象 (Object)
Anything is Object
现实中是客观上的存在。程序中其实是由类创建出来的一片内存空间。
对象的特征:
能干什么 方法
有什么 属性
6.3 类
类型,是一种对客观事物的抽象,是一种主观上的认识。
程序中的类是对现实中的对象的一种抽象。是程序员定义的一种数据类型(自定义类型), 是产生对象的模型。
类==>产生对象
类中有什么:
属性的定义 : 用变量来表示,叫实例变量
方法的定义 : 用函数来表示,叫消息
6.4 定义类
@interface 类名
{
//属性的定义
变量类型 变量名;//实例变量
}
//方法的声明
-(返回值类型) 方法名 : 参数1 : 参数2;
@end
@implementation 类名
//方法的定义
-(返回值类型) 方法名 : 参数1 : 参数2
{
//做事的代码
}
@end
7.创建对象
7.1 OC中对象只能被创建在堆中。
7.2 NSObject类中,有创建对象的方法。
只有通过继承,才可以获取NSObject中的创建对象的方法。
@interface MyFirstClass : NSObject
@end
7.3 之后,只要给类发消息alloc,就可以创建出对象来。
发送消息的方式如下:
[类 消息]; ==>[MyFirstClass alloc];
7.4 给对象发消息
[对象 消息]; ==>[first show: 100];
-开头的方法是实例方法,只响应对象的消息
+开头的方法是类方法,响应给类发的消息
7.5 实例变量
即不是全局变量,也不是局部变量。
每个实例(对象)都有一份,在类中相当于全局,任何位置(所有的实例方法)都可以访问。
类方法中不可以访问实例变量
8. 多文件编程
一个类两个文件,一个头文件xxxx.h,头文件中保存类的interface部分。另一个是实现文件xxxx.m.实现文件中保存implementation部分,当然得#import "xxxx.h".
如果在程序的某个地方,要使用一个类,就需要该文件#import类的头文件。
附:
class method : 类方法
instance method : 实例方法
instance variable : 实例变量