-1

谁能告诉我为什么当“程序”中有小写字符时returnSet返回为零

我已经完成了,NSLog 肯定会挑选出变量,但是当它 addObject: 它只是没有?

+ (NSSet *)variablesUsedInProgram:(id)program
{
    NSMutableSet *returnSet = [[NSMutableSet alloc]init];

    if ([program isKindOfClass:[NSArray class]]) {
        [program enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop)
        {
            if ([obj isKindOfClass:[NSString class]]) {
                if ([obj rangeOfCharacterFromSet:[NSCharacterSet lowercaseLetterCharacterSet]].location != NSNotFound) {
                    NSLog(@"Variable: %@", obj);
                    [returnSet addObject:obj]; 
                }
            }
        }];
    }

    return returnSet;
}
4

2 回答 2

3

发布的代码没有错误。它不能返回 的值nil

你的错误在别处。

于 2012-07-11T20:13:41.470 回答
0

我猜你的问题是ARC内存管理问题。您发布的代码返回对其创建的集合的非拥有引用。除非您将其保存到强实例变量中,否则它将被释放。

于 2012-07-15T14:29:42.077 回答