1
|
elcool codeVerine · 技术社区 · 14 年前 |
![]() |
1
1
所以在这一点上,编译器实际看到的是:
如您所见,您可以声明引用foo类的editfooviewcontroller的接口,但当editfooviewcontroller.m导入foo.h时,它实际上是在它下面定义的。
在实践中,每当您的类引用ivar或方法声明中的其他类时,您应该使用正向声明(即
一个例外是如果你的类子类或者实现了一个协议
你真的需要
|
![]() |
2
2
我相信你的答案是 here . |
![]() |
3
2
前者导入一个头文件,
后者声明在代码的其他地方,您将定义一个名为
你倾向于使用
|
![]() |
4
1
第二个变量forward声明foo,这意味着编译器将知道存在一个类foo,但没有更多的内容。也就是说,不是它的大小或成员。对于这里的用法,这是不需要的。 第二种变体有时比第一种变体更好,因为它限制了依赖性。即editfooviewcontroller的用户不需要依赖foo.h。 |
![]() |
Andrew · 类型脚本索引。d、 npm包中深度嵌套函数的ts声明 6 年前 |
|
jaksia · 声明后可以设置常量值吗? 7 年前 |
![]() |
user42768 · 冲突声明的C++标准定义 7 年前 |
![]() |
Madaray · 在scala中使用循环声明val 7 年前 |
![]() |
Areopag · 在C++中声明带或不带方括号的数组有区别吗? 7 年前 |