-1
-(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 。

所以这行得通

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

但是,如果块不需要参数,我不需要添加那个 void。我觉得这很奇怪。

4

1 回答 1

2

语法是:

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

这是一个备忘单。

于 2013-09-30T12:11:13.433 回答