(一)OC简介
1. C语言的基础上,增加了一层最小的面向对象语法
2. OC是完全兼容C语言
3. 可以在OC代码中混入C语言代码,甚至是C++代码(但不是任何源文件都可以混入C++代码,需要把拓展名改成.mm,OC的拓展名.m,可以兼容C语言代码)
4. 可以使用OC开发Mac OS X平台和iOS平台的应用程序
(二)OC语法预览
1.关键字
1.1 基本上所有关键字都是以@开头
@public、@protected、@private、@selector
@try、@catch、@throw、@finally
@protocol、@optional、@required、@class
@property、@synthesize、@dynamic
另外一些不是以@开头的关键字
self、super、id、_cmd、__block、__strong、__weak、
BOOL Class SEL YES NO nil
atomic nonatomic retain assign copy ...
2.字符串以@开头
OC中,字符串以@开头 :@“Hello”
C语言中,字符串:“Hello”
3.OC相对C语言增加了一些数据类型
还有nil,相当于C语言中的NULL,也就是0
关于布尔类型:
OC风格BOOL 具有 YES 和 NO。实用8位存储空间。从最低位算起。 YES定义为1,NO定义为0。
C语言风格 bool 具有true和false 而非0的全都是true,0是false。
BOOL的使用
BOOL类型的本质其实也是char
typedef signed char BOOL;• BOOL类型的变量有2种取值:YES、NO
#define YES (BOOL)1
#define NO (BOOL)0
• BOOL的输出(可以当做整数来用)
NSLog(@"%d %d", YES, NO);打印,屏幕输出:NSLog(@“Hello”);
- NSLog与printf的区别
• NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
• NSLog输出后会自动换行,printf输出后不会自动换行
• 使用NSLog需要#import <Foundation/Foundation.h>
• 使用printf需要#include <stdio.h>
输出BOOL值的方法:NSLog(@"%@",YES?@"YES":@"NO");
如你有一个 bool型 变量 : IfReadOnly ; 你想在控制台输出 它的值。 在程序中想看到他的值的地方 加入如下代码:
NSLog(@"ifReadOnly value: %@" ,ifReadOnly?@"YES":@"NO"); 即可
(三) OC程序开发过程
1.和C语言一样,OC也有预处理指令 #import
- • #import的作用
•跟#include一样,用来拷贝某个文件的内容
•可以自动防止文件内容被拷贝多次,也就意味着头文件中不用加入下面的预处理指令了 - #ifndef _STDIO_H_
#define _STDIO_H_
#endif
2.开发oc、iOS、Mac程序中,通常都会用到Foundation框架
此框架中包含了很多常用的API(应用编程接口)
框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可
代码如下:
#import <Foundation/Foundation.h>
利用Foundation框架开发程序运行过程如下:
(1)编写OC源文件 .m .c
(2)编译文件 cc -c xx.m xxx.c
(3)链接 cc xx.o xxx.o -framework Foundation(链接是把项目中所有相关的.o目标文件跟C语言的函数库联系在一起,生成一个可执行文件。)
(4)运行 ./a.out
浙公网安备 33010602011771号