我的xcode 4刚刚崩溃,我遇到了构建错误:
@interface代码块中的未知的类型名称 'SecondViewController'
:
SecondViewController *sms;
和
具有'retain'属性的属性必须 是对象类型
在
@property(nonatomic,retain) SecondViewController *sms;
但是我导入了SecondViewController.h。在崩溃之前,相同的代码工作。
FirstViewController.h:http://pastebin.com/jnPKBny7
SecondViewController.h:http://pastebin.com/2D058ZAK
编辑:我意识到发生此错误是因为类互相导入。任何人都可以解释为什么这是错误的吗?
有什么想法吗?
答案 0 :(得分:1)
您无法进行循环导入。我认为尽可能使用@class指令使用前向类声明是一种好习惯。对于你的情况:
FirstViewController.h:
@class SecondViewController ;
@interface FirstViewController
{
SecondViewController * _secondViewController ;
}
@property ( nonatomic, retain ) secondViewControlller ;
@end
SecondViewController.h:
@class FirstViewController ;
@interface SecondViewController
{
FirstViewController * _firstViewController ;
}
@property ( nonatomic, retain ) firstViewControlller ;
@end
然后在.m文件中,导入正在使用的类的.h文件。将.h文件导入其他.h文件的唯一原因是: