Paul T.
Paul T.

Reputation: 5038

Create block variable

I have function, where I add block variable blockIfLoadingImageFromServer to array:

- (UIImage *)getImageWithblockIfLoadingImageFromServer:(void (^)(UIImage *imageCompleted))blockIfLoadingImageFromServer
{
      [array addObject:blockIfLoadingImageFromServer];
}

Then I want to get this variable, but I don't know how. I tried:

(void (^)(UIImage *imageCompleted))blockIfLoadingImageFromServer = [array objectAtIndex:0];
void (^)(UIImage *imageCompleted) *blockIfLoadingImageFromServer = [array objectAtIndex:0];

But that gives an error (bad syntax). How can I do this?

Upvotes: 1

Views: 313

Answers (1)

zoul
zoul

Reputation: 104125

I usually typedef to make my life easier:

typedef void (^ImageBlock)(UIImage*);

And then:

- (void) doSomethingWithBlock: (ImageBlock) block
{
    [array addObject:[block copy]];
}

- (void) doSomethingElse
{
    ImageBlock block = [array lastObject];
    …
}

Upvotes: 3

Related Questions