【问题标题】:How to explain this Objective C method declaration "- method:parameter;"如何解释这个 Objective C 方法声明“-method:parameter;”
【发布时间】:2011-09-11 10:28:56
【问题描述】:

像这样声明、实现和使用方法:

测试.h:

- method:parameter;

测试.m:

- method:parameter{
    return nil;
}

使用:

[test method:anObject];

没有返回类型和参数类型,但它可以在没有任何警告或错误的情况下工作。 有人可以解释一下吗?

【问题讨论】:

  • 返回类型为void,返回值为nil!
  • @ViTo Brothers Apoyan,实际上不,如果未指定,它是 id

标签: objective-c syntax methods


【解决方案1】:

正如Objective-C Programming Language document 所说:

如果没有显式声明返回或参数类型,则假定它是方法和消息的默认类型——id

所以:

- method:parameter;

实际上意味着:

- (id)method:(id)parameter;

相应地:

- method:parameter{
    return nil;
}

实际上意味着:

- (id)method:(id)parameter{
    return nil;
}

【讨论】:

    【解决方案2】:

    Obj-C 中的默认类型是id。所以这里的返回和参数都是id

    【讨论】:

      【解决方案3】:

      来自The Objective-C Programming Language

      如果返回或参数类型不是 显式声明,假定为 成为方法的默认类型和 消息——id

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-15
        • 2012-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 2012-02-29
        相关资源
        最近更新 更多