UISearchBar和NSMutableArray的问题

2 iphone objective-c uisearchbar nsarray ios

我有一个带有搜索栏的tableview.我想搜索我的整个核心数据库.

我在这里将所有内容加载到数组中:

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:managedObjectContext]; 
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease]; 
[request setEntity:entityDescription]; 
NSError *error = nil; 
NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];   
self.myArray = array;
Run Code Online (Sandbox Code Playgroud)

我正在使用此方法搜索,但收到错误:

- (void) searchTableView {

    NSString *searchText = searchBar.text;
    NSMutableArray *searchArray = [[NSMutableArray alloc] init];

    for (NSDictionary *dictionary in myArray)
    {
        NSString *value = [dictionary objectForKey:@"name"];
        [searchArray addObject:value];
    }

    for (NSString *sTemp in searchArray)
    {
        NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];

        if (titleResultsRange.length > 0)
            [copyListOfItems addObject:sTemp];
    }
    [searchArray release];
    searchArray = nil;
}
Run Code Online (Sandbox Code Playgroud)

但是当我搜索时,我在这里遇到了崩溃:

MedicalCode *code = [self.copyListOfItems objectAtIndex:indexPath.row]; 
cell.codeLabel.text = code.description;
Run Code Online (Sandbox Code Playgroud)

错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ICD9Disease objectForKey:]: unrecognized selector sent to instance 0x1be6e0'
Run Code Online (Sandbox Code Playgroud)

Dyl*_*ich 5

您收到错误是因为您要求一个对象,但是您正在尝试在行中设置一个字符串:

NSString *value = [dictionary objectForKey:@"name"];
Run Code Online (Sandbox Code Playgroud)

由于您获取的是字符串,而不是对象,因此您需要使用的是valueForKey:

    NSString *value = [dictionary valueForKey:@"name"];
Run Code Online (Sandbox Code Playgroud)