我收到了警告:
'NSString'可能无法响应'-equals:'
我无法弄清楚为什么NSString
无法回复equals
。编译器是否假设anExpression
中的元素可能不是NSString
s?
+ (NSSet *)variablesInExpression:(id)anExpression
{
NSMutableSet *setOfVariables = [[NSSet alloc] init];
for (NSString *str in anExpression) {
if (([str equals: @"x"] || [str equals: @"a"] || [str equals: @"b"])
&& ![setOfVariables member:str]) {
[setOfVariables addObject:str];
}
}
return setOfVariables;
[setOfVariables release];
}
感谢您的时间!
答案 0 :(得分:4)
这不是java。您应该使用方法isEqualToString:
。
if (([str isEqualToString:@"x"] || [str isEqualToString:@"a"] || [strisEqualToString: @"b"]) && ![setOfVariables member:str])