我正在使用 NSPredicate 过滤 NSArray,并将过滤后的数组用于我的 UITableView。当用户在 UITextField 中输入文本时,我正在使用此过滤。所以每次 UITextField 中的文本发生变化时,我都会调用我的过滤器函数。
它看起来像这样:
NSArray *hugeArray = ...;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", input];
_resultArray = [hugeArray filteredArrayUsingPredicate:predicate];
[_myTableView reloadData];
当我使用具有大量对象的 NSArray 时,输入变得非常慢(UI 中的完整输入变得很慢)。是否有可能获得更好的性能或在后台运行过滤的命令?
不应阻止在 UITextField 中写入内容。当 UITableView 将在输入后很短的时间后刷新时,它可能没问题。