1

我试图了解客观 c 块是如何工作的。

据我了解:块只是一个没有名字的函数。

例如:

 ^(int a, int b) { return a + b; }; 
  1. 我该如何调用它?

  2. 我可以像使用函数一样多次使用它吗?如果我可以,那怎么办?

  3. 'self' 关键字将在块内引用哪个类?

非常感谢任何帮助。

4

1 回答 1

3
- (void)something
{
    void (^ sample)(void) = ^{
        NSLog(@"I am %@", self);
    };

    sample();
    sample();
}

...或更多符合您的样本:

int (^ adder)(int a, int b) = ^(int a, int b) { return a + b; };
NSLog(@"Result: %d", adder(5, adder(5, 4)));
于 2013-07-12T18:53:24.173 回答