IOS开发之路-Objective-C 复合

今天先补充一下很有必要记住的东西.



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 就可以避免这种情况的发生。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值