首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

object-c基础教程读书笔记 第二章:对C的扩张

2012-09-09 
object-c基础教程读书笔记 第二章:对C的扩展object-c是拥有一些附加特性的C语言。hello world的源代码如下:

object-c基础教程读书笔记 第二章:对C的扩展

object-c是拥有一些附加特性的C语言。


hello world的源代码如下:
#import <Foundation/Foundation.h>
int main(ubt argc,const char *argv[]){
??? NSLog(@"hello world!");
??? return (0);
}
分析如下:
1、#import
??? 与c一样,object-c使用头文件来包含元素声明,这些元素包含结构体、符号常量、函数原型等。在c里,用#include来实现。
??? #import是GCC编绎器提供的,xcode在编绎object-c,c,c++时都会用到它。
??? #import可保证头文件只包含一次,而无论它在文件中出现多少次。
??? #import <Foundation/Foundation.h>:告诉编绎器查看Foundation框架中的Foundation.h头文件。

??? 框架是包含在一个单元中的部件集合,如apple公司将cocoa,carbon,quicktime,openGL等技术做为框架集。其中,cocoa的又由Foundation和Applicationn Kit(也称为AppKit)组成,另外还有两个支持框架的套件:Core Animation和Core Image。Foundatin框架又是处理用户界面之下的层的特性,如数据结构和通信机制。所以,它非常重要!

??? 如果你要精通cocoa,还要学习AppKit,它包含Cocoa的高级特征:用户界面元素、打印、声音颜色等管理
??? 使用#import导入主头文件,可以使用整个框架的所有特性,且加载的速度会很快,不会因为文件数量的大而变慢。
??? 要查看Foundation框架包含哪些头文件,可以查年Headers目录:/System/Library/Frameworks/Foundation.framework/Headers/
2、NSLog()和@""
??? NSLog()在c中用printf(),但NSLog()比printf()增加了特性。
??? 和printf()一样,NSLog()以字符串为第一个参数,这个字符串可以包含格式说明符(如%d)
??? NS前缀是有历史原因的,指的是NextSTEP。
??? @是object-c在c的基础上添加的特性之一,它表示后面的字符串是作为cocoa的NSString来处理。NSString与String相比,有如下功能:
??? ??? 告知其长度;
??? ??? 将自身与其它字符串比较;
??? ??? 将自身转换为整型值或浮点值。
??? 而这些功能是使用c的字符串无法实现的。
???
??? ???
布尔类型:
??? c中是bool(true,false),而object-c中是BOOL(YES,NO)
??? 布尔型的例子如下:
#import <Foundation/Foundation.h>

BOOL arcIntsDifferent(int i,int j){
??? if(i===j){
??? ??? return (NO);
??? }else{
??? ??? return (YES)
??? }
}
NSString *boolString (BOOL yesno){
??? if(yesno==YES){
??? ??? return @"YES";
??? }else{
??? ??? return @"NO";
??? }
}
int main(int argc,const char *argv[]){
??? ??? BOOL b;
??? ??? b = arcIntsDifferent(5,5)
??? ??? NSLog("arc %d and %d is diffrent?%@",5,5,boolString(b));
??? ??? return (0);
}
分析如下:
??? 1、boolString()的返回类型是一个指向NSString的指针,这表明函数会返回一个cocoa的字符串,而不是c的字符串,所以函数内用@""。?

?

?


其它:??? ??? ??? ??? ???
我开发的环境:
mac:10.6.3
xcode:3.2.4
ios sdk:4.1
xcode的目录:/Developer/Applications

热点排行