在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Objective-C 中使用@来表示其对C语言的扩展,由编译器提供支持,也叫做compiler directives,比如@interface, @implementation等,下面一一介绍: @interface 相当于类的声明,像是C++中.h文件中包含的类声明信息。跟Java中的interface是不一样的。interface file就是.h文件。在声明一个新类时,可以注意一下信息:
@implementation 相当于类的实现,像是C++中cpp文件中类方法的实现那部分。 下面是一个例子:
@protocol Objective-C中的protocol像是Java中的interface,只有声明,没有实现,一个类可以实现多个protocol。
@class @class是对#import的补充,"Import" links the header file it contains. Everything in the header, including property definitions, method declarations and any imports in the header are made available. Import provides the actual definitions to the linker. 相比之下@class只是告诉linker不要抱怨某个类没有定义,可以认为它是一个约定:约定你会在另外一个地方提供定义。@class主要用来避免循环import,比如两个interface 文件A和B, A的定义需要B,B的定义需要A,而在两个文件中,就可以一个文件用import,另外一个用@class。下面来总结一下import和@class的区别和联系:
所以,一般来说,@class是放在interface file中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。 在实现这个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要import在@class中声明的类进来.
下面几个不常用,也没找到很好的文章介绍它们,所以暂时先不介绍,之后再补充 @interface_category @interface_extension @compatibility_alias @implementation_category
|
请发表评论