【IOS】OC常见问题

1.  typedefvoid(^HandlerType)(id);如何理解

其实就是typedef了一个参数为void,返回类型为void的block.

也就是说,在使用到 void (^)(void) 类型时,可以使用HandlerType代替。这与typedef int myint没有什么不一样,只是定义的类型改成了block罢了。


2. OC 和 C, C++混编问题

A. OC可以和C直接混编,因为OC就是C的扩展,混编的后缀用.m结尾。 若命名成.mm结尾,则编译可以过,但build的时候会报链接错误,提示某个方法没有定义。

B. OC和C++混编,采用.mm结尾,可以被.m文件调用,也可以调用.CPP文件,一般作为中间文件。


3. 关于可变参数,以及宏定义。

OC中的可变参数和C中的可变参数一样,两者通用。

#define LogDbg(...) [WbxLogUtil LogTo:LOG_LEVEL_DEBUG format:__VA_ARGS__]

实现为:

WbxLogUtil.h

@interface WbxLogUtil : NSObject
+ (void)LogTo:(LOG_LEVEL)level format:(NSString * )format, ...;
@end
WbxLogUtil.mm

@implementation WbxLogUtil
+ (void)LogTo:(LOG_LEVEL)level format:(NSString * )format, ...
{
.....
}
@end

其中,.mm文件中调用了c++的文件。

在实际调用中,代码为:

LogDbg(@"The segment index is: %d", index);




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值