我正在尝试为我的应用程序创建一些可重用的块。

CommonBlocks.h

void (^testBlock)(int) = ^(int number) {
  // do nothing for now;
};

VariousImplementationFile.m
#import "CommonBlocks.h"

(void)setup {
   testBlock(5);
 }

不幸的是,当我尝试将此代码推送到iOS设备时,我收到错误消息:链接器命令失败,退出代码为1(使用-v查看调用)。看来我想念一些。

有什么建议吗?

谢谢

最佳答案

您尝试在声明之前添加static关键字:

static void (^testBlock)(int) = ^(int number) {
  // do nothing for now;
};

您的代码导致错误,因为您在.h头文件中声明了非静态变量testBlock。

当您在VariousImplementationFile.m中调用#import "CommonBlocks.h"时,一次声明testBlock。然后,在其他位置导入CommonBlocks.h,再次声明testBlock,这样您将得到符号重复错误。

关于ios - iOS块,如何在不同的实现文件中使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20562769/

10-10 04:11