NSRange在使用它进行查找时出错

时间:2014-03-17 15:27:26

标签: objective-c

我试图找到一个子串是否存在于给定的字符串中,并且我在一个块中使用NSRange。 但我收到一个错误,我不知道我哪里出错了。 有人可以解释一下吗?

-(AddressCard *) lookup:(NSString *)tempName{


    NSUInteger result = [book indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
        NSRange *range = [[obj name] rangeOfString:tempName options:NSCaseInsensitiveSearch];
        if (range != NSNotFound) {
            return YES;
        }
        else return NO; //Keep looking
    }];
    if (result != NSNotFound) {
        return book[result];
    }
    else{
    return nil;
    }
}

错误信息是:使用不兼容类型'NSRange'(又名'struct _NSRange')

的表达式初始化'NSRange *'(又名'struct _NSRange *')

找到答案。 NSrange是struct而不是对象。我会在10分钟后接受答案

1 个答案:

答案 0 :(得分:3)

必须是NSRange range而不是NSRange *rangeNSRange不是接口类型,而是struct

 NSRange range = [[obj name] rangeOfString:tempName options:NSCaseInsensitiveSearch];