《Object-C基础教程》-学习笔记1

第二章

2.2 解构Hello Object-C程序

.m扩展名,代表message,是OC的一个主要特性

编译器是LLVM,能处理C语言的全部3个变体(C/C++/OC)

2.2.1  #import语句

import代替了C语言的#ifdef的功能来包含另外一个文件。

Foundation框架的头文件占用了将近1M的磁盘空间。编辑器读取所有头文件的文本不会消耗很长时间,因为XCode使用预编译头文件(经过压缩的、摘要式的头文件)来加快速度。

预编译头:把头文件预先编译成中间格式,比如目标文件,以节约开发中编译器反复编译该头文件的开销。

例如,对于xxx.h,编译器预先将其处理为xxx.pch,以后再编译改程序时,编译器会对比pch和h文件的(最后改动的)时间戳,决定是否要重新编译。

例如使用Cocoa.h,里边包含其它三个头文件。OC建议使用该头文件,而不要包含三个单独的头文件(除非不需要三个中的一个或两个),因为编译器可以优先使用预编译的版本。

2.2.2    框架

框架代码路径/System/Library/Frameworks/

框架是一种把头文件、库、图片、声音等内容聚集在一个独立单元中的集合。APPLE将Cocoa、Carbon、QuickTime和OpenGL等技术作为框架集来提供。Cocoa的组成部分有Application Kit和Foundation,还有一套支持型框架,例如Core Animation,Core Image。

头文件:每个框架有一个主头文件,里边包含了框架内的所有头文件。

2.2.3 NSLog()和@字符串

NSLog(@“Hello OC! by %s”, “WuYongbo”);

NSLog在printf的基础上做了封装,有时间戳、自动添加换行符等。还可以使用printf的格式符等。

NS是NextSTEP的缩写,是兼容NextSTEP的标识,还表示这是Cocoa的命名办法。

“@”表示引号内的字符串应该作为Cocoa的的NSString元素来处理;NSString提供许多特性,例如:

提供字符串的长度;

字符串比较;

字符串和整形、浮点型的转化;等等。

2.3 布尔类型

BOOL跟C中的bool通用;Cocoa中只能使用BOOL;BOOL使用带符号的字符类型(signed char,8位存储空间)

如果BOOL变量被赋值为一个整数,转换为16进制后,末位的数字是0,就是NO,1就是YES。

格式说明符:%@

NSLog输出任意对象的值都会用它表示;对象会通过一个名为description的方法来提供自己的NSLog()格式(跟Java Object的toString()类似)

第三章

3.1 间接 indirection

3.4 中缀符 infix notation

@interface  和  @implementation 指令,分别告诉编译器类定义和类的实现

    原文作者:RoFF
    原文地址: https://www.jianshu.com/p/cd4b8fb27d98
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞