Sun*_*day 6 methods syntax arguments objective-c
编译以下方法定义(使用Apple LLVM 4.1)时,我感到很惊讶:
- (void) testMethod:someArgument {
}
Run Code Online (Sandbox Code Playgroud)
注意someArgument缺少的类型.Objective-C中有关指定方法参数类型的规则是什么?
默认参数类型是id.即使这将编译:
- testMethod:someArgument {
}
Run Code Online (Sandbox Code Playgroud)
这是一个id以其为参数并且应该返回的方法id.
实际上,甚至不需要方法名称:
- :someArgument {
}
Run Code Online (Sandbox Code Playgroud)
这可以称为:
[self :someObject];
Run Code Online (Sandbox Code Playgroud)
当然所有这些都是非常糟糕的做法,你应该总是指定类型(和名称).