我在界面上声明了这个
void (^ soc)(NSString *type, BOOL configured);
和
@property (nonatomic, assign) BOOL serviceOK;
然后在.m的方法中我有这个:
soc = ^(NSString *type, BOOL configured){
// ...
};
// other blocks defined here
然后这个:
NSMutableArray *arrayBlocks = [[NSMutableArray alloc] initWithObjects:
[block1 copy],
[soc(typeOne, self.serviceOK) copy],
[block3 copy],
[block4 copy],
nil];
我在soc行上有一条错误消息坏接收器类型无效(什么???)
如果我只是运行:
soc(typeOne, self.serviceOK);
它工作正常,但如果我将它包含在阵列中就会抱怨。任何帮助表示赞赏。
答案 0 :(得分:2)
如果要添加块的副本,请添加:
[soc copy],
到数组。你要做的是添加一个调用块的结果的副本。
答案 1 :(得分:1)
soc(typeOne, self.serviceOK)
执行块。因为它什么也没有返回,所以没有任何东西可以将复制消息发送到阵列并放入阵列。