从另一个函数调用块

时间:2013-11-19 10:48:00

标签: ios iphone objective-c block

我需要一些关于块的帮助

我想做这样的事情:

- (void)function {
      self.block =  ^(NSArray * array){
        NSLog(@"BLOCK %@", array);
    };
}


- (void)anotherFunction {
   block(array)
}

有可能吗?!)

2 个答案:

答案 0 :(得分:2)

是的,没关系...您可以执行以下操作

@property (nonatomic, copy) void (^block)(NSArray *array);

...

- (void)function {
    self.block =  ^(NSArray * array){
        NSLog(@"BLOCK %@", array);
    };
}


- (void)anotherFunction {
    if (self.block)
        self.block(array);
}

答案 1 :(得分:1)

是的,有可能

<强>第一: -

在你的.h文件中键入def,你打算使用它的块类型有帮助。

typedef void (^blockForYou)(NSArray*);//typedef helps in recognizing and better    understanding blocks and easy to use as well

现在创建一个块类型的属性使其复制。

@property(nonatomic,copy)blockForYou yourBlock;

现在将.m文件复制块存入您的财产。

self.yourBlock=^(NSArray* arrayData){
        //get your array here
    };

现在从其他函数调用你的块只是..

self.yourBlock(<pass your array here>);
希望它有所帮助。