关于 iphone:如何搜索完整的核心数据数据库

How To Search Full Core Data Database

我有一个搜索功能,我想搜索我的整个核心数据数据库。

我有 4 个实体,它们都是 NSManagedObject MedicalCode.

的子类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 - (void) loadDatabase
    {
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"MedicalCode" inManagedObjectContext:managedObjectContext];
        NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
        [request setEntity:entityDescription];
        NSError *error = nil;
        NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];
    }

    - (void) searchTableView {

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

        for (NSDictionary *dictionary in myArray)
        {
            NSString *value = [dictionary valueForKey:@"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;
    }

这里的问题是,我认为我不会将实际对象本身添加到副本列表中,而是我只会添加名称属性。此外,它在 iPhone 上是滞后的。有什么建议吗?

编辑:

或者有没有办法将它与 NSFetchedResultsController 联系起来并走这条路?


你需要在你的 NSFetchRequest 中添加一个 NSPredicate。