我有一个SearchStringTooltip
ManagedObject。带属性@dynamic tooltipText;
(NSString)
我需要在数据库中动态添加新的工具提示,但我只需要唯一值(不敏感)。
他们一次可以进来100多个;每次我检查唯一的..
看起来像:
if (newTooltips.count == 0)
return;
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"SearchStringTooltip"
inManagedObjectContext:self.moc];
NSFetchRequest *request = [NSFetchRequest new];
[request setEntity:entity];
for (NSString *name in newTooltips) {
[request setPredicate:[NSPredicate predicateWithFormat:@"tooltipText = %@", name]]; //like = (=) + time *2(sometimes *3) ofcourse i know i need like.. Its insensitive
NSInteger count = [self.moc countForFetchRequest:request error:nil]; //But its is very expensive operation expensive
if (count > 0) {
continue;
}
DBSearchStringTooltip *tooltip = [NSEntityDescription insertNewObjectForEntityForName:@"SearchStringTooltip"
inManagedObjectContext:self.moc];
tooltip.tooltipText = name;
}
我怎样才能更便宜地为内存做呢?可以有超过 10 000 个用于检查唯一性的工具提示......而且我必须全部检查。