2

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

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

//Class Journal.h

@property (strong) JournalVC *JVC

//Class JournalVC.h
//IVar
Journal *_Journal

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

如果只有一个人知道另一个人,这不会发生。当 JournalVC 被 UIVIewController(它的父类)替换并且没有 import 语句时,它可以工作,而 IVar 保持不变并且该标头导入另一个。

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

4

1 回答 1

5

您可以使用@class前向声明。不要进行圆形标题导入;相反,只需在 JournalVC 标头中使用以下行声明 Journal 类:

@class Journal;

然后,在JournalVC.m. 有关更多信息,请参阅此问题

于 2012-07-18T16:32:06.057 回答