【问题标题】:Importing a class imports the classes it has imported automatically导入一个类会自动导入它已经导入的类
【发布时间】:2011-03-09 16:28:36
【问题描述】:

如果我有三个班级:

A 类 B类 C类

它们都有导入语句来相互导入,即 ClassC 导入 ClassB,ClassB 仅导入 ClassA。

鉴于这种设计,ClassC 是否可以自动访问 ClassA?

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    首先:在任何情况下,import/include 都不会让一个类可以访问另一个类,它只会让 A 类了解 B 类。

    第二:可见性取决于您导入标题的位置。 如果您确实在 ClassB 标头中导入了 ClassA 标头,然后在 ClassC 标头中导入了 ClassB 标头,则 ClassC 知道 ClassA。但是如果将它导入到一个实现文件中,那么答案是否定的。

    编辑:应该注意最好在标题中进行类前向声明​​,然后在实现文件中包含适当的声明。

    【讨论】:

    • 太棒了。我现在要创建一个基类来导入所有常用的东西,然后我就不需要一遍又一遍地做。然后我所有的类都可以导入它。
    • 小提示:如果您希望某个类对所有其他类可见,您可以将其包含在预编译的标头中(默认情况下,它位于项目的 Other Sources 组中,名称为 _Prefix .pch)
    • 是的,我之前尝试过,但没有成功。假设我应该以某种方式解决这个问题。
    猜你喜欢
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2018-02-08
    相关资源
    最近更新 更多