这个块格式化代码有什么问题?

时间:2013-09-30 11:20:38

标签: objective-c

-(void) vPerformBlockOnAllAutoCompleteHandler:((^)(BGMotherofAutoCompleteHandler * acHandler))block
{
    for (BGMotherofAutoCompleteHandler * acHandler in [self arBGKeywordAutoCompleteHandlers]) {
        block(acHandler);
    }
}

好的,所以block是一个以BGMotherofAutoCompleteHandler为参数的块。我经历了循环并调用了块(acHandler)。

怎么了?

错误是: /business/Dropbox/badgers/BadgerNew/BGSearchController3.m:218:49:期望一种类型。在我看来,我必须在阻止之前添加无效。

所以这是有效的

-(void) vPerformBlockOnAllAutoCompleteHandler1:(void (^)(BGMotherofAutoCompleteHandler * acHandler))block
{
    for (BGMotherofAutoCompleteHandler * acHandler in [self arBGKeywordAutoCompleteHandlers]) {
        block(acHandler);
    }
}

但是,如果块不需要参数,我不需要添加该void。我发现这很奇怪。

1 个答案:

答案 0 :(得分:2)

语法为:

- (void)vPerformBlockOnAllAutoCompleteHandler:(void(^)(BGMotherofAutoCompleteHandler*))block
{
 for (BGMotherofAutoCompleteHandler * at in [self arBGKeywordAutoCompleteHandlers]) {
  block(at);
 }
}

Here's a cheat sheet.