如何获得块的名称?

时间:2014-02-12 16:45:50

标签: objective-c objective-c-blocks

例如,我们有

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.

谢谢。

1 个答案:

答案 0 :(得分:6)

  

我想知道如果我在某个函数调用中将它作为参数传递,我们怎么能得到这个块的名称?

您无法获取作为参数传递的块的名称,只能获取作为参数传递的int变量的名称。该名称不是该块的一部分...该名称与包含该块的变量相关联。

假设您已将块作为参数传递,您应该使用参数名称来引用块,就像使用int参数的名称来引用传递给a的整数值一样功能或方法。