Objective c 你怎么投积木?
我做了一组积木。我想从数组中执行一个单独的块,但我很难找到转换和调用该块的语法Objective c 你怎么投积木?,objective-c,objective-c-blocks,Objective C,Objective C Blocks,我做了一组积木。我想从数组中执行一个单独的块,但我很难找到转换和调用该块的语法 void (^hiBlock)() = ^void() { NSLog(@"Hi"); }; void (^byeBlock)() = ^void() { NSLog(@"Bye"); }; NSArray *blocks = @[hiBlock, byeBlock]; (void (^)(void))blocks[0](); 考虑使用t
void (^hiBlock)() = ^void() {
NSLog(@"Hi");
};
void (^byeBlock)() = ^void() {
NSLog(@"Bye");
};
NSArray *blocks = @[hiBlock, byeBlock];
(void (^)(void))blocks[0]();
考虑使用
typedef
使您的生活更轻松。以下工作:
typedef void (^HiBlockType)();
HiBlockType hiBlock = ^{ NSLog(@"Hi"); };
HiBlockType byeBlock = ^{ NSLog(@"Bye"); };
NSArray *blocks = @[ hiBlock, byeBlock ];
((HiBlockType)blocks[0])();
还请注意,这本质上是
dispatch_block_t
,因此您可以使用它而不是HiBlockType
缺少括号-((void(^)(void))块[0])代码>!!!那很容易谢谢你!