在我们研究一些程序的代码时,总是能在某个.h文件中发现有许多@interface分别定义了不同的类。比如AFNetworking的AFURLRequestSerialization.h中我们可以看到:
@interface AFHTTPRequestSerializer : NSObject <AFURLRequestSerialization>
@interface AFJSONRequestSerializer : AFHTTPRequestSerializer
@interface AFPropertyListRequestSerializer : AFHTTPRequestSerializer
可能会有些疑惑。按照我们的想法来说,一个.h文件中写入一个@interface然后在.m中实现相关内容。事实上,这是因为我们在创建新的Cocoa Touch Class文件时,系统会根据我们新建时输入的Class名生成一套@interface/@implementation:
//testClass.h
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface testClass : NSObject
@end
NS_ASSUME_NONNULL_END
//testClass.m
#import "testClass.h"
@implementation testClass
@end
久而久之就误以为一个(.h/.m)文件相当于一个类。其实,我们可以在一个(