为什么在这里添加NSAssert会导致错误?

时间:2013-01-24 10:30:30

标签: objective-c xcode

-(NSArray *) convertArrayOfDictionaryToOneOfItsElement: (NSString *) key
{
    NSArray * result = [self convertEachElementToAnother:^(id element){
        NSDictionary *elementDictionary = (NSDictionary *) element;
        NSString * value= elementDictionary [key];
        //NSAssert(result, @"result must not benil");
        return value;
    }];
    return result;
}

此代码在没有NSAssert的情况下工作正常。但是,如果事情是零,我想确保它发生的时候。

好吧,我把NSAssert

它挂了。

EXC_BAD_ACCESS

为什么?

更新:我发现了这个错误。它应该是NSAssert (value, @"result must not benil")

好吧,我仍然想知道为什么要做NSAssert (result,...问题

1 个答案:

答案 0 :(得分:3)

因为内部块没有结果数组,所以此数组仅在最后一个块执行后才会分配。