我正在尝试为我的应用程序创建一些可重用的块。
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/