以下语法是什么意思?(objective-c风格方法调用)

CjC*_*oax 0 iphone cocoa objective-c ios ios5

我是objective-c(来自C#/ Java背景)的菜鸟,并且难以理解以下Objective-c语法,它用于Picker View控制(以及我们需要实现的其他方法Picker View):

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row 
             forComponent:(NSInteger)component
Run Code Online (Sandbox Code Playgroud)

为了理解,我试图将它映射到以下语法,但似乎完全不同.

-(NSString *)MethodName: (UIPickerView *)FirstParam and:(NSInteger)SecondParam 
             and:(NSInteger)ThirdParam
Run Code Online (Sandbox Code Playgroud)

有人可以分解零件并给出一些解释吗?

小智 7

这是一个名为的方法

pickerView:titleForRow:forComponent:

它返回一个指向a的指针NSString,并需要UIPickerView*,NSInteger和NSInteger类型的参数.

类似java的方法声明可能如下所示:

NSString pickerViewTitleForRowForComponent(UIPickerView pickerView, NSInteger row, NSInteger component)


Eri*_*ner 5

不同之处在于,在Objective-C中,方法名称由部分组成,而不是像java中的单个字符串.

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row ...
/*    ^           ^             ^            ^          ^            
      |           |             |            |          |            
  Return Type     |       Argument Type      | 2nd part of m. name     etc....
                  |                          |
         Part of method name           Argument Name
*/
Run Code Online (Sandbox Code Playgroud)