您的位置:首页 > 移动开发 > Objective-C

IOS开发之路-Objective-C 复合

2013-08-01 18:35 183 查看
今天先补充一下很有必要记住的东西.

objective-c 格式化输出符号


%@ 对象

%d, %i 整数

%u 无符整形

%f 浮点/双字

%x, %X 二进制整数

%o 八进制整数

%zu size_t

%p 指针

%e 浮点/双字 (科学计算)

%g 浮点/双字

%s C 字符串

%.*s Pascal字符串

%c 字符

%C unichar

%lld 64位长整数(long long)

%llu 无符64位长整数

%Lf 64位双字

%e 是实数,用科学计数法计的

复合

复合貌似是一个新概念,和继承有什么区别呢?

继承之间是A是一个(
is a )B

而复合是A中有一个(
has a )B

举个例子, 一台电脑由主机,显示器,鼠标,键盘...等等组成.

其中每一部分都有各自的功能和作用,组合到一起就会发挥更大的作用,

这就是复合.但是你不能说鼠标是继承了电脑吧.

需要注意的是:

严格的讲,只有对象间的组合才能叫复合,像int ,float ,enum ,struct 等基本数据类型都被认为是对象的一部分。

这个时候

@class的作用就是告诉编译器,有这么一个类,用吧,没有问题。
在对象复合时,使用@class非常有用,因为被复合的对象只需要在整体中声明变量即可,所以需要知道有这么一个类即可。但是通过#import 来引入这个类的话需要首先编译这个类才行,使用@class就不要再#import这个被复合的类了
复合时只需要声明变量,不需要调用对象中的方法,所以使用@class即可,如果.m中需要调用该类下得方法,则不能使用@class引入类,二用#import。
@class 还可以解决循环依赖关系的问题,例如A.h 导入了 B.h ,而B.h 导入了 A.h ,每一个头文件的编译都要让对象先编译成功才行,使用@class 就可以避免这种情况的发生。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: