【发布时间】:2011-05-12 20:36:59
【问题描述】:
一个非常具体的问题,因此对其进行研究有点困难。这对我来说似乎很简单,但我做错了什么,我看不到它是什么。
我创建了以下方法:
- (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]
我确定 building 是一个 NSDictionary,而 searchString 绝对是一个 NSString。该方法的结果是一个 NSComparisonResult,然后我将其与 NSOrderedSame 进行比较
NSComparisonResult result = [self searchBuildingObject:[self.buildings objectForKey:building] forString:searchText];
if (result == NSOrderedSame) NSLog(@"Same");
我收到的警告是“BuildingsViewController 可能无法响应 '-searchBuildingObject:forString:'。有人知道出了什么问题吗?
【问题讨论】:
标签: objective-c ios4