一個非常具體的問題,因此對其進行研究很困難。這對我來說似乎很簡單,但我做錯了什麼,我看不到它是什麼。「可能不會迴應」警告
我創建了以下方法:
- (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