objective-c代码中的方法签名之一
@interface ClassName : NSObject
@property NSObject *data;
@end
类定义头文件是
{{1}}
现在如何准备和通过第二个参数?
答案 0 :(得分:1)
您可以将块作为参数传递,例如:
[... funcName:@"" parameter:^(ClassName * input) {
NSLog(@"I'm inside the block!");
}];
void(^myBlock)(ClassName *) = ^(ClassName * input) {
NSLog(@"I'm inside the block!");
};
[... funcName:@"" parameter:myBlock];
这两个选项都可以使用,您可以使用对您更有意义的任何选项。
答案 1 :(得分:0)
在Objective-C中编写自己的方法时,必须将显式类型转换为您想要传递的数据类型。 ^符号表示您正在传递一个块。如果您想在块之后传递另一个参数 - 您只需添加方法名称的下一部分,然后添加数据类型,然后选择变量名称。你会这样做:
-(void)funcName: (const NSString *)name parameter: (void(^)(ClassName *input)) obj withOtherParameter:(NSString *) param {
// Use it here and do what you will
NSLog(@"Param = %@", param);
}
这假设您传入一个名为“param”的NSString。如果您想传入任何其他数据类型,只需在代码中的“param”之前将(NSString *)
替换为(NSNumber *)
或(NSInteger)
,然后将param变量转换为您想要的数据类型。