今天我偶然发现了这个不同寻常的Objective-C,令我惊讶的是,编译没有失败并输出"嗨":
#include <Foundation/Foundation.h>
@interface MyObject : NSObject
- (NSString *)method:param;
@end
@implementation MyObject
- (NSString *)method:param
{
return param;
}
@end
int main() {
MyObject * m = [MyObject new];
NSLog(@"%@", [m method:@"hi"]);
return 0;
}
编译命令:
# clang version: clang-900.0.37
clang test.m -fobjc-arc -o test
method
只有一个参数param
,但我没有明确给出一个类型。我似乎无法找到相关的任何文件?发生了什么事?
答案 0 :(得分:1)
我一直无法在此找到任何官方文档,但在我的测试中,这与通用id
类型的参数无法区分。