class和interface的区别

之前一直对这两个关键字有些疑问,没有仔细的区分。看来今天是躲不掉了,就好好学习了一下,其实也很简单。

使用@class时的目的就是不想暴露出更多的细节,只需要知道有这么一个type就行了,比如在一个头文件中定义一个新的类,这个新的类里面的成员是一个其他类的类型,但是由于这是在h文件中,只需要知道这个类型就行了,并不会调用这个类型中的方法,所以这时使用@class就行了。如下面的例子:

@class MyOtherClass;

@interface MyClass : NSObject
{
    MyOtherClass *myIvar;
}
@end

而如果想实际调用某个类里面的方法还是需要熟悉的#import这个玩意儿的。

#import "MyOtherClass.h"

- (void)doSomething
{
    [myIvar doSomethingElse];
}

其实之所以有这个疑问完全是因为我在看如何给SmartSocket中的XPGWifiSDK升级时遇到的疑问,当时看到h文件中有一个@class,当时就蒙住了,卧槽嘞,这是干嘛的啊,现在看完上面的理解之后再去看h文件,里面就明白了,里面使用了@class只是因为h文件中新创建的类使用@class后面声明的类型而已。并没有开始那么可怕了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值