2011-06-09 45 views
8

声明,实施和使用的方法是这样的:如何解释这个Objective C方法声明“ - method:parameter;”

Test.h:

- method:parameter; 

Test.m:

- method:parameter{ 
    return nil; 
} 

使用:

[test method:anObject]; 

没有回报类型和参数类型,但它没有任何警告或错误。 有人可以解释吗?

+0

返回类型为void返回值为零! – 2011-06-09 06:11:50

+1

@ViTo Brothers Apoyan,实际上不是,如果没有指定,它就是'id'。 – 2011-06-09 06:23:36

回答

12

由于Objective-C Programming Language document状态:

如果退货或参数类型不明确声明,它认为是对的方法和消息的默认类型 - 一个id

所以:

- method:parameter; 

实际上意味着:

- (id)method:(id)parameter; 

,并相应:

- method:parameter{ 
    return nil; 
} 

实际上意味着:

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

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