IOS开发之路-Objective-C 复合
2013-08-01 18:35
183 查看
今天先补充一下很有必要记住的东西.
复合
复合貌似是一个新概念,和继承有什么区别呢?
继承之间是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 就可以避免这种情况的发生。
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 就可以避免这种情况的发生。
相关文章推荐
- IOS开发之路-Objective-C 继承,多态
- 我的iOS开发之Objective-C第4天之属性、复合
- IOS开发之路-Objective-C ARC入门详解
- IOS开发之路-Objective-C copy(浅拷贝与深拷贝)
- IOS开发之路-Objective-C 集合下(实战)
- IOS开发之路-Objective-C 集合下(实战2)
- IOS开发之路-Objective-C OC学习总结
- 【iOS开发之Objective-C】复合
- IOS开发之路-Objective-C 集合上(笔记)
- IOS开发之路-Objective-C 字符串
- IOS开发之路-Objective-C 获得单独的年月日及星期
- IOS开发之路-Objective-C 面向对象编程基础
- IOS开发之路-Objective-C 代码块(Block)-block计算器的实现
- IOS开发之路-Objective-C 类目、延展、协议
- iOS开发(Objective-C)常用库索引
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- iOS开发-Objective-C单例在ARC环境下的实现和理解
- iOS 高级开发技巧 1.熟悉Objective-C (四) 多用类型常量 少用#define预处理命令
- iOS 开发--Objective-C 反射机制
- 【学习ios之路:Objective-C】block块语法.NSDate和NSDateFormatter