我正在尝试访问我的网络服务以从那里获取字符串并AutoCompleteTableView
使用以下方法将其放入我的 -
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *substring = [NSString stringWithString:txtSearching.text];
substring = [substring stringByReplacingCharactersInRange:range withString:string];
if (([substring isEqualToString:@""]) || (substring == nil) || ([substring length] == 0)){
autoCompleteTableView.hidden=YES;
}
NSString *jsonUrl = [NSString stringWithFormat:MYAPI,substring];
NSURL *url = [NSURL URLWithString:[jsonUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"]];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
NSArray *data = [jsonData objectFromJSONData];
for (int i = 0; i< [data count]; i++) {
NSDictionary * dic = [data objectAtIndex:i];
[elementArray addObject:[dic objectForKey:@"keyword"]];
}
[self searchAutocompleteEntriesWithSubstring:substring];
[elementArray removeAllObjects];
return YES;
}
和我的searchAutocompleteEntriesWithSubstring
- (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring {
// Put anything that starts with this substring into the autoCompleteArray
// The items in this array is what will show up in the table view
//[elementArray removeAllObjects];
[autoCompleteArray removeAllObjects];
int lengthOfSubstring = [substring length];
for(NSString *curString in elementArray) {
int lengthOfCurentString = [curString length];
if (lengthOfCurentString >=lengthOfSubstring) {
NSString *substringRangeLowerCase = [[curString substringWithRange:NSMakeRange(0,[substring length])] lowercaseString];
NSString *substringRangeUpperCase = [[curString substringWithRange:NSMakeRange(0,[substring length])] uppercaseString];
NSString *substringRangeCase = [[curString substringWithRange:NSMakeRange(0,[substring length])] capitalizedString];
if (([substring isEqualToString:@""]) || (substring == nil) || ([substring length] == 0)) {
// NSLog(@"current string = [%@]",curString);
}else{
if (([substring isEqualToString:substringRangeLowerCase]) || ([substring isEqualToString:substringRangeUpperCase]) || ([substring isEqualToString:substringRangeCase])) {
[autoCompleteArray addObject:curString];
}
}
}
}
autoCompleteTableView.hidden = NO;
[autoCompleteTableView reloadData];
}
我的资料——
[{"keyword":"qwerty"},{"keyword":"司法试卷"},{"keyword":"qwe"},{"keyword":"quilts"},{"keyword":"藜麦"},{"keyword":"qwerty0disk"},{"keyword":"q"}]
我不知道为什么我UI
变得很慢..我JSONKit
也在使用。