ios - Invoke block immediately after definition -
i have code this:
void (^testblock)() = ^ { nslog(@"test"); }; testblock(); can invoke block after definition like:
void (^testblock)() = ^ { nslog(@"test"); }(); this's way when block invoked once. ideas?
when call void (^testblock)() = ^ {...}(); try keep reference whatever block returns, not block itself. xcode throws:
initializing 'void(^__strong)()' expression of incompatible type 'void'. in other words - block returns nothing (void), , trying hold strong reference of type void(^)(), block type.
assuming want reference block, must first declare block, , call through name gave reference it, showed in first snippet.
if on other hand, wish declare block , invoke once without holding it, can drop reference it, , call:
^{ nslog(@"test"); }();
Comments
Post a Comment