0

我在界面上声明了这个

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);

它工作正常,但如果我将它包含在数组中,它会抱怨。任何帮助表示赞赏。

4

2 回答 2

2

如果要添加块的副本,请添加:

[soc copy],

到数组。您要做的是添加调用块结果的副本。

于 2012-11-26T03:25:05.937 回答
1
soc(typeOne, self.serviceOK)

执行块。并且因为它什么都不返回,所以没有任何东西可以发送复制消息并放入数组中。

于 2012-11-26T03:24:03.113 回答