与c/c++不一样的地方
1) .h 和 .m; .m是实现文件; #import导入头文件; @class类声明。
2) @property getter/setter申明; @synthesis getter/setter实现
3) @interface child:parent<protocol1, protocol2> 类声明
---只能单继承
---可以多个protocol; protocol中声明的接口必须全部实现
4) @interface ExistClass (newname) 分类,可以在无需改动ExistClass源码的情况下,给ExistClass增加接口。 分类中声明的无需全部实现。 分类中会覆盖ExistClass中相同声明的函数
5) 内存管理!!!!!!!!
6) 深浅复制
7) 函数声明 (return type) funcName:(arg1 type) arg1name[ andArg2desc:(arg2 type) arg2name]
8) 函数调用 funcName: arg1 [andArg2desc: arg2 ]
9) id, (void *)类型。 任意类型都可赋给id, 可给id发送消息、只要id所指向的对象实际能处理该消息即可
10) 定义对象类型变量时, 都是指针形式。 ClassName * obj;这样子
11) 序列化: 需要实现指定接口的函数即可序列化和反序列化。
Objective-C语法概述
简称OC
面向对象的C语言
完全兼容C语言
可以在OC里面混入C/C++代码
可以开发IOS和Mac OS X平台应用
语法预览
关键字
基本上都是以@开头(为了与C语言区分)
少部分不是以@开头
字符串以@开头
@“kongqw” OC 语言字符串
“kongqw” C 语言字符串
数据类型
char
int
float
double
BOOL(YES/NO)
nil
相当于C语言中的NULL 也就是0
注释
// 注释
/* 注释 */
屏幕输出
NSLog(@”kongqw”);
NSLog(@”age is %i”, 26);
OC程序运行步骤
和C语言一模一样
编写代码
C语言源文件拓展名 .c
OC源文件拓展名 .m
编译程序
生成.o,目标文件
链接
把项目中所有的相关联的.o目标文件和C语言函数库合并起来,生成一个可执行文件
运行