iphone - 创建 block 变量

标签 iphone objective-c ios nsarray objective-c-blocks

我有函数,在其中我将块变量 blockIfLoadingImageFromServer 添加到数组:

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

然后,我想获取此变量,但是我不知道如何。我试过了:
(void (^)(UIImage *imageCompleted))blockIfLoadingImageFromServer = [array objectAtIndex:0];
void (^)(UIImage *imageCompleted) *blockIfLoadingImageFromServer = [array objectAtIndex:0];

但这会产生错误(语法错误)。我怎样才能做到这一点?

最佳答案

我通常使用typedef来简化生活:

typedef void (^ImageBlock)(UIImage*);

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

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

关于iphone - 创建 block 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176397/

相关文章:

iPhone:如何从 UIScrollView 中删除所有对象

iphone - "Unable to restore previously selected frame"遍历 NSDictionary 时

iphone - 将 AFIncrementalStore 与 Auth token 一起使用

objective-c - 安全的 __attribute__((constructor)) 函数类

ios - 在 iPhone X 上画线

ios - 带有按钮的 UIAlertView,标题重叠?

iOS - "' Foundation/Foundation.h' 文件未找到“Swift 项目内的自定义框架内出错”

ios - Spritekit - 碰撞和接触问题

ios - 展平任意数组

ios - 代码错误 : "Use of unresolved identifier: GGLContext" (without CocoaPods)