一个非常具体的问题,因此对其进行研究很困难。这对我来说似乎很简单,但我做错了什么,我看不到它是什么。“可能不会回应”警告
我创建了以下方法:
- (NSComparisonResult) searchBuildingObject:(NSDictionary *) building forString:(NSString *) searchString {
NSComparisonResult buildingComparison = [[building objectForKey:@"building"] compare:searchString
options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchString length])];
if (buildingComparison != NSOrderedSame) {
for (NSString *alias in [building objectForKey:@"alias"]) {
NSComparisonResult aliasComparison = [alias compare:searchString
options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchString length])];
if (aliasComparison == NSOrderedSame)
return aliasComparison;
}
}
return buildingComparison;
}
这似乎是工作的罚款,甚至当我测试它给了我正确的结果的方法。然而,我仍然在调用该方法得到一个警告:
[self searchBuildingObject:[self.buildings objectForKey:building] forString:searchText]
我确信建筑是一个NSDictionary,并搜索字符串绝对是一个NSString。该方法的结果是NSComparisonResult然后我比较NSOrderedSame
NSComparisonResult result = [self searchBuildingObject:[self.buildings objectForKey:building] forString:searchText];
if (result == NSOrderedSame) NSLog(@"Same");
我得到的是“BuildingsViewController可能不响应警告‘-searchBuildingObject:forString:’任何人都不会看到有什么不对
?
啊,我明白了!谢谢。有一件事我不明白,为什么我以前从来没有得到过这个错误。我之前创建了方法,我没有声明(我忘了,我没有得到一个错误提醒我),但这是我第一次得到这个错误... – 2011-05-12 20:53:16
可能他们是来自超类的方法,你只是压倒? – 2011-05-12 20:55:35
不太可能,但我想可能,我不记得确切的情况了。无论我是否通过论证,它都会有所作为吗?这是我第一个需要参数的方法,所以也许可能是这样吗? – 2011-05-12 20:59:29