【问题标题】:What is the significance of a semicolon in an Objective-C method definition?Objective-C 方法定义中分号的意义是什么?
【发布时间】:2011-07-10 14:41:24
【问题描述】:

当我查看我的一个类中一些比较晦涩的实现代码时,我有点困惑,我发现了几个看起来像这样的方法定义:

- (void)doSomething; {
    // Something...
}

- (void)doSomethingWithSomething:(Something*)aSomething; {
    // Something with aSomething...
}

这显然是一个人工制品,将方法声明复制并粘贴到实现块中,然后在提供定义时忽略从声明中删除分号。

混淆源于这些方法定义不仅可以编译,而且可以完美执行。我看到了它们并立即预料到了编译错误,就像你尝试一些 C 疯狂时可能会出现的那样:

void doSomething(); {
    /* Something */
}

那么问题就变成了,“那个分号到底有什么作用?”似乎它完全没有做任何事情,在这种情况下,问题就变成了,“为什么编译器允许在该特定位置使用单个随机分号?”没有分号是正常的,一个分号显然也可以,但还有什么是编译错误?

【问题讨论】:

    标签: objective-c syntax methods


    【解决方案1】:

    它什么也没做。当您将方法声明从标头复制/粘贴到实现文件中时,它只是为了帮助您。您不必删除分号,因此可以节省几次击键。该分号是完全可选的。

    【讨论】:

    • 我想这是显而易见的答案,它只是不让我觉得它是一个非常类似于 C 的东西。 VB:当然,Objective-C:不行。哦,好吧,有趣的琐事......
    猜你喜欢
    • 2010-11-04
    • 1970-01-01
    • 2013-01-20
    • 2011-07-03
    • 2023-03-04
    • 1970-01-01
    • 2010-11-15
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多