Objective-C基础教程学习笔记(二)对C的扩展

Objective-C只不过是拥有一些附加特性的C语言。

智能提示快捷键:Esc。

 

.m扩展名表示文件包含Objective-C代码,应由Objective-C编译器处理。在Xcode中,所有这些编译工作全由GCC(GNU Compiler Collection,GNU编译器集合)处理。

C编译器处理名称以.c结尾的文件,而C++编译器处理.cpp文件。

#import

和C语言一样,Objective-C使用头文件来包含元素声明,这些元素包含结构体、符号常量、函数原型等。C语言使用#include语句通知编译器应在头文件中查询定义。在Objective-C中也可以使用#include来实现这个目的。

#import是GCC编译器提供的,Xcode在编译Objective-C、C、和C++程序时都会使用它。#import可保证头文件只被包含一次,而不论此命令实际上在文件中出现了多少次。

#import <Foundation/Foundation.h>语句告诉编译器查看Foundation框架中的Foundation.h头文件。

 

框架

框架是一种聚集在一个单元的部件集合,包含头文件、库、图像、声音文件等。苹果公司将Cocoa、Carbon、QuickTime和OpenGL等技术作为框架集提供。Cocoa的组成部分有Foundation和Application Kit(AppKit)框架。还有一个支持框架的套件,包含Core Animation和Core Image,为Cocoa增添了多种精彩功能。

Foundation 框架处理的是用户界面之下的层中的特性,例如数据结构和通信机制。

每个框架都是一个重要的技术集合,通常包含数十个甚至上百个头文件。每个框架都有一个主头文件,它包含了所有框架的各个头文件。通过使用#import导入主头文件,可以使用所有框架的特性。

Foundation框架的头文件占用了近1M的磁盘存储空间,包含一万四千多行代码,涵盖一百多个文件。使用#import <Foundation/Foundation.h>包含主头文件,就能够获得整个集合。

Xcode会使用预编译头文件(一种经过压缩的、摘要形式的头文件),在通过#import导入这种文件时,加载速度会非常快。

Headers目录,可以浏览框架包含哪些头文件。

 

NS

Cocoa对其所有函数、常量和类型名称都添加了“NS”前缀,这个前缀说明函数来自Cocoa而不是其它工具包。

 

@符号

@符号是Objective-C在标准C语言基础上添加的特性之一。双引号中的字符串前有一个@符号,这表示引用的字符串应该作为Cocoa的NSString元素来处理。

 

BOOL布尔类型

C语言使用bool,包含true值和false值。

Objective-C提供了BOOL,具有YES值和NO值。

Objective-C的BOOL类型比C语言的bool类型早诞生了十多年。两种不同的布尔类型可以在同一个程序中存在,但是在编写Cocoa代码时要用BOOL。

BOOL使用8位存储空间,YES定义为1,NO定义为0。

绝不要直接将BOOL值与YES比较。直接和NO比较则一定安全,因为C语言中的假值就是0。

posted @ 2012-10-08 15:35  TQ.CH  阅读(415)  评论(0编辑  收藏  举报