这段代码有什么问题:

时间:2013-11-28 07:02:36

标签: objective-c

我有一个接受需要BOOL参数的块的函数。

有时候不需要BOOL参数,我只是插入false。它不起作用。

-(void) vLoadStuffsWithURLBlock:(NSString*(^)()) blURL andPermaToastMessage:(NSString *) strPermaMessage
{
    [self vLoadStuffsWithBlock:^(false){ //Doesn't work here
        return [self arGetArrayToBeParsed:blURL];
    } andPermaToastMessage:strPermaMessage];
}

这是它试图调用的函数

-(void) vLoadStuffsWithBlock:(NSArray*(^)(BOOL isAlreadyCanceled)) blarGetArrayTobeParsedWith andPermaToastMessage:(NSString *) strPermaMessage
{
    [self vLoadStuffsWithBlock:blarGetArrayTobeParsedWith andPermaToastMessage:strPermaMessage withParseAndReturnIDBlock:^(NSDictionary * dict){
        return [self vParseAndReturnID:dict];
    } withmoFromDefaultSelector:^(NSString * strObjectDefaultSelector){
        return [self moFromDefaultSelector:strObjectDefaultSelector];
    } withWhatToDoAfterGettingANewRowToDelegate:^{
        [self vWhatToDoAfterGettinANewRowToDelegate];
    } andCompletionBlock:^{}];
}

2 个答案:

答案 0 :(得分:1)

您在代码中写入的'false'是块定义。 你想要的是当你调用块时,你将'false'作为参数传递给块。 所以,非常不同。

答案 1 :(得分:0)

我把它改为:

-(void) vLoadStuffsWithURLBlock:(NSString*(^)()) blURL andPermaToastMessage:(NSString *) strPermaMessage
{
    [self vLoadStuffsWithBlock:^(BOOL something){
        return [self arGetArrayToBeParsed:blURL];
    } andPermaToastMessage:strPermaMessage];
}
吴宝丽的回答是正确的。我只是通过提供样本来完成它。