类类型冲突ios



我不知道这是XCode中的缺陷,还是我在Obj-C中缺乏经验,但我在尝试在一个类中创建包含指向另一个类的指针的属性时遇到了问题,而另一个类则有一个包含指向第一个类的指标的属性。

我知道上面可能不清楚,但希望这个例子能说明我的意思:

//Class Journal.h
@property (strong) JournalVC *JVC
//Class JournalVC.h
//IVar
Journal *_Journal

在这两个类中,我都导入另一个类的头,这样XCode就知道了另一个的类。如果我不导入头,它会抱怨它不知道属性/IVar应该是什么类型,并希望用它的类替换它(JournalVC和Journal反之亦然)。当两个类都为另一个类的头具有import语句时,也会发生这种情况。

如果只有一个人知道另一个人,这种情况就不会发生。当JournalVC被UIVIewController(其父类)取代而没有导入语句时,它就工作了,而IVar保持不变,并且该头导入另一个。

我认为问题是两个头都在相互导入,这会导致XCode混淆。有没有其他方法可以让其中一个头文件知道该属性的类而不出现此问题?

您可以使用@class正向声明。不要进行循环头导入;相反,只需在JournalVC头中用以下行声明Journal类:

@class Journal;

然后,在JournalVC.m中进行传统的头导入。有关详细信息,请参阅此问题。

最新更新