次のようなブロックのようなプロパティを定義できることはわかっています。
self.myProperty = ^(){
// bla bla bla
};
それを配列に保存する
NSArray *arrayOfBlocks = [[NSArray alloc] initWithObject:[self.myProperty copy]];
そして、それを使用して実行します
void (^ myblock)() = [arrayOfBlocks objectAtIndex:0];
myblock();
しかし、ブロックにパラメーターがある場合はどうでしょうか?
つまり、次のようなブロックです。
self.myProperty = ^(id myObject){
// bla bla bla
};
私が欲しいのは、この行を変更せずに維持できることです
void (^ myblock)() = [arrayOfBlocks objectAtIndex:0];
myblock();
// yes, I know I can replace myblock(); with myblock(object);
// but because I have a large number of blocks on this array, I will have to build
// a huge if if if if statements to see what block is being run and change the objects passed
私が欲しいのは、ブロックを配列にパラメーターとともに保存することです...次のようなものです:
NSArray *arrayOfBlocks = [[NSArray alloc] initWithObject:[self.myProperty(object?) copy]];
これは可能ですか?