【问题标题】:Objective-C. Multiple anonymous categories?目标-C。多个匿名类别?
【发布时间】:2014-01-17 15:06:02
【问题描述】:

关于anonymous categories

但是我不能第二次声明一个匿名类别来拆分我的变量和方法的定义吗?

我知道 Xcode 允许这样做,但它会毫无问题地工作吗?

更新

我再次解释。主要问题是我可以在同一个文件中使用 2 个没有名称(匿名)的类别,还是它们会相互覆盖/重叠?现在清楚了吗?

【问题讨论】:

  • 您说的是扩展类别?你想要两个?你不能。
  • 为什么还要在方法扩展中声明方法?请注意,您不需要声明方法(注意它是“声明”,而不是“定义”。“定义”是您放置代码的位置)。
  • @Sulthan 有关示例,请参见this answer 的“选项 3”。

标签: ios objective-c categories anonymous objective-c-category


【解决方案1】:

您可以声明任意数量的类扩展。每个都可以包含实例变量和方法。只要编译器在看到类的@implementation 之前已经看到了所有的类扩展,它就可以工作。

您应该有一个包含您班级的@implementation 的源文件(扩展名为.m.mm)。该源文件需要包含@implementation 之前的所有类扩展名,因此如果将扩展名放在.h 文件中,则需要将那些.h 文件包含在该.m 文件中。

更新

在您的更新中明确回答问题:是的。您可以在同一个文件中使用两个类扩展(匿名类别)。您的类将包含在两个扩展中声明的实例变量,只要编译器在与类的 @implementation 相同的翻译单元中看到这两个扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多