这种情况有时会发生,但并非总是发生:
类的标题
#import "DetailViewController.h"
@interface MasterViewController : UIViewController
@property (nonatomic, weak) DetailViewController *detailViewController;
属性行上的错误:未知类型名称DetailViewController
然后我在导入后添加此行,错误消失。
@class DetailViewController;
这很烦人,偶尔只会发生一次。我有很多类,没有完美的类行。有些人需要上课。啊,有时它发生在一个工作正常好几天的课堂上,但从某个角度来看,Xcode决定它不再了解这个课程并决定惹恼你。
为什么?
答案 0 :(得分:2)
您永远不需要同时执行@class
并导入头文件,您应该只执行其中一个。 @class
告诉编译器该类存在于项目的某个位置。在头文件中,您应该只使用@class
来减少循环依赖关系并加快编译速度。然后,一旦您在标题中写了@class
,就可以在实现中导入实际的.h
文件。
在这种情况下,看起来你确实有一个循环依赖,这是错误的原因。
在.h
个文件的底线,使用@class
中的.m
导入完整标题。
注意:如果您继续对X进行子类化,则@class
无法正常工作,您必须在.h