我在tableview中解析了JSON
,我想实现搜索栏来过滤大量数据。我尝试从here实施搜索栏。
但它崩溃了。
-(void)parsingmethod{
NSString *string = [NSString stringWithFormat:@"HEREISMYJSONURL"];
NSURL *url = [NSURL URLWithString:string];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
self.json=[responseObject valueForKey:@"name"];
self.filteredCandyArray = [NSMutableArray arrayWithCapacity:[candyArray count]];
self.filteredArray=[NSMutableArray arrayWithArray:self.json];
NSLog(@"self.flteredarray=%@",self.filteredArray);
self.current_address = [responseObject valueForKey:@"current_address"];
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"Oops, something went wrong: %@", [error localizedDescription]);
}];
[operation start];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if ( cell == nil ) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if (tableView == self.searchDisplayController.searchResultsTableView) {
cell.textLabel.text =[self.filteredArray objectAtIndex:indexPath.row];
} else {
cell.textLabel.text =[self.json objectAtIndex:indexPath.row];
}
cell.detailTextLabel.text=[self.current_address objectAtIndex:indexPath.row];
return cell;
}
内容过滤和委托方法也是从here
完成的在我的崩溃日志下面
***** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFString 0xcc515f0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key name.'
*** First throw call stack:
(
0 CoreFoundation 0x021af1e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x0199c8e5 objc_exception_throw + 44
2 CoreFoundation 0x0223efe1 -[NSException raise] + 17
3 Foundation 0x0165cc7a -[NSObject(NSKeyValueCoding) valueForUndefinedKey:] + 282
4 Foundation 0x015c9dfd _NSGetUsingKeyValueGetter + 81
5 Foundation 0x015c9437 -[NSObject(NSKeyValueCoding) valueForKey:] + 260
6 Foundation 0x0159a465 -[NSFunctionExpression expressionValueWithObject:context:] + 1260
7 Foundation 0x016202c1 -[NSComparisonPredicate evaluateWithObject:substitutionVariables:] + 248
8 Foundation 0x016201c1 -[NSPredicate evaluateWithObject:] + 48
9 Foundation 0x01620141 _filterObjectsUsingPredicate + 418
10 Foundation 0x0161fefa -[NSArray(NSPredicateSupport) filteredArrayUsingPredicate:] + 328
11 LuckyHR 0x00043995 -[NameListTableViewController filterContentForSearchText:scope:] + 245
12 LuckyHR 0x00043bf2 -[NameListTableViewController searchDisplayController:shouldReloadTableForSearchString:] + 386
13 UIKit 0x00a1eb37 -[UISearchDisplayController searchBar:textDidChange:] + 128
14 UIKit 0x0093dc56 -[UISearchBar(UISearchBarStatic) _searchFieldEditingChanged] + 178
15 libobjc.A.dylib 0x019ae82b -[NSObject performSelector:withObject:] + 70
16 UIKit 0x0065e3b9 -[UIApplication sendAction:to:from:forEvent:] + 108
17 UIKit 0x0065e345 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
18 UIKit 0x0075fbd1 -[UIControl sendAction:to:forEvent:] + 66
19 UIKit 0x0075ffc6 -[UIControl _sendActionsForEvents:withEvent:] + 577
20 UIKit 0x00d8529d -[UITextField fieldEditorDidChange:] + 221
21 UIKit 0x00765db4 -[UIFieldEditor textInputDidChange:] + 58
22 UIKit 0x00d931b3 -[UITextInputController _sendDelegateChangeNotificationsForText:selection:] + 118
23 UIKit 0x00d95090 -[UITextInputController _insertText:fromKeyboard:] + 768
24 UIKit 0x00d95954 -[UITextInputController insertText:] + 372
25 UIKit 0x00768a64 -[UIFieldEditor insertText:] + 1086
26 UIKit 0x00d88ffa -[UITextField insertText:] + 59
27 UIKit 0x00848760 -[UIKeyboardImpl insertText:] + 87
28 UIKit 0x00859ea4 -[TIKeyboardOperationInsertText(UIKeyboardImpl) main] + 83
29 Foundation 0x01670c79 -[__NSOperationInternal _start:] + 671
30 Foundation 0x015ed9c8 -[NSOperation start] + 83
31 UIKit 0x00846d4d -[UIKeyboardImpl performOperations:] + 153
32 UIKit 0x00844f8e -[UIKeyboardImpl continueHandleKeyboardInputWithOperations:] + 75
33 UIKit 0x00844ddc __73-[UIKeyboardImpl replyHandlerForHandleKeyboardInputWithExecutionContext:]_block_invoke_2 + 44
34 UIKit 0x00dae978 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 402
35 libobjc.A.dylib 0x019ae82b -[NSObject performSelector:withObject:] + 70
36 Foundation 0x015f0e48 __NSThreadPerformPerform + 285
37 CoreFoundation 0x0213877f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
38 CoreFoundation 0x0213810b __CFRunLoopDoSources0 + 235
39 CoreFoundation 0x021551ae __CFRunLoopRun + 910
40 CoreFoundation 0x021549d3 CFRunLoopRunSpecific + 467
41 CoreFoundation 0x021547eb CFRunLoopRunInMode + 123
42 GraphicsServices 0x031d45ee GSEventRunModal + 192
43 GraphicsServices 0x031d442b GSEventRun + 104
44 UIKit 0x0065cf9b UIApplicationMain + 1225
45 LuckyHR 0x000499fd main + 141
46 libdyld.dylib 0x0392a70d start + 1
47 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) *
我去了这里发布的类似问题,但仍未弄明白。
答案 0 :(得分:0)
明确写道:
3 Foundation 0x0165cc7a -[NSObject(NSKeyValueCoding) valueForUndefinedKey:] + 282
4 Foundation 0x015c9dfd _NSGetUsingKeyValueGetter + 81
5 Foundation 0x015c9437 -[NSObject(NSKeyValueCoding) valueForKey:] + 260
你要求一个不存在的密钥,因此它无法正常工作。