【问题标题】:Objective-C Class Question?Objective-C 类问题?
【发布时间】:2011-01-27 05:33:29
【问题描述】:

这个逻辑我的脑袋都要炸了,谁能帮忙?

A类#imports B类。 A 类调用 B 类中的方法 A。

这很好用

B 类想要从方法 A 调用的另一个方法向 A 类发送响应。如果你从 B 类中#import A 类,它实际上是一个无限循环并且整个事情崩溃了。

有没有办法正确地做到这一点,比如父类型的东西?

顺便说一句,我正在为 iPhone 开发。

编辑 当我 #import Class A from Class B 我得到这个编译器错误...

error: expected specifier-qualifier-list before 'StoreHoursCore'

有什么想法吗?

【问题讨论】:

  • 不是创建了一个无限循环。 #import 指令防止文件被多次包含。请描述您执行此操作时遇到的编译错误。

标签: iphone objective-c class ios methods


【解决方案1】:

我相信使用@class 指令应该可以解决您的问题。

使用@class forward 声明您的类类型,以便编译器不会咳嗽。

看看这个question SO。

【讨论】:

  • 我要补充一点,这称为“前向声明”
  • 你总是在我做之前几秒钟输入同样的东西:/
  • @Brock,谁?我,还是@Vladimir?
  • @Jacob 大声笑。是啊,多么巧合!
  • 我要补充一点,最好只在实现文件中使用#import,否则使用@class。例外情况是当您必须为超类导入标头时。这不是一个硬性规定,但这是你应该养成的习惯。
【解决方案2】:

使用@class 转发声明它为一个类。这提示编译器知道它是一个类,而不必多次交叉包含和编译该类(这是您收到错误的原因)。即:

@class myClass;

#importpreprocessor 指令可以防止多重包含,但#include 指令没有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    相关资源
    最近更新 更多