0

配列にiOSの連絡先があります。ユーザーがキーボードでテキストを変更したときにこの配列で検索を実行する必要がありますが、連絡先が 500 を超えると、キーボードが消えます。

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);

    dispatch_async(queue, ^{

        [self doPerformSearchingInContacts:substring];

        dispatch_sync(dispatch_get_main_queue(), ^{

            [self displaySearchedFriendResult];  


        });
    });


// Function for searching
-(void) doPerformSearchingInContacts:(NSString*) serachStr {

    self.filterDeviceContact = nil;

    NSMutableArray *people = [NSMutableArray array];

    [people addObjectsFromArray:self.deviceContact];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[cd] %@",serachStr];

    self.filterDeviceContact  = [people filteredArrayUsingPredicate:predicate];

    NSLog(@"self.filter %@ ",self.filterDeviceContact);

}

ありがとう!

4

1 に答える 1

0

dispatch_asyncメインスレッドに追加するために使用したいと思うでしょう。そうしないと、ブロックされます。

[self doPerformSearchingInContacts:substring];

dispatch_async(dispatch_get_main_queue(), ^{
    [self displaySearchedFriendResult];  
});
于 2013-11-01T01:58:42.397 に答える