例如,我们有
typedef id(^func)(id);
func read_file = ^(NSString *path_to_file) {
return [NSString stringWithContentsOfFile:path_to_file encoding:NSUTF8StringEncoding error:NULL];
};
我想知道如果我在一些函数调用中将它作为参数传递,我们怎么能得到这个块的名字? 例如,
fileOperator(read_file); // I want to print the block's name in this function.
谢谢。
答案 0 :(得分:6)
我想知道如果我在某个函数调用中将它作为参数传递,我们怎么能得到这个块的名称?
您无法获取作为参数传递的块的名称,只能获取作为参数传递的int
变量的名称。该名称不是该块的一部分...该名称与包含该块的变量相关联。
假设您已将块作为参数传递,您应该使用参数名称来引用块,就像使用int
参数的名称来引用传递给a的整数值一样功能或方法。