#iphone #core-data
#iPhone #core-data
Вопрос:
У меня большое количество элементов в core data.
У каждого элемента есть атрибут с именем «Source», который представляет собой строку, указывающую источник, к которому принадлежит этот элемент.
Когда я извлекаю данные из core data, я буду извлекать элементы из 10 источников (всего более 200 источников) каждый раз, и каждый раз 10 источников выбираются случайным образом перед извлечением.
Как я могу написать NSPredicate для этого случая?
Если каждый раз извлекать элементы только из 1 источника, это легко:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"Source like %@", @"source1"];
Но что, если это 10 источников и они меняются со временем? нужно ли мне писать, как
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(Source like %@) AND (Source like %@) AND...", @"source1", @"source3", ...];
Спасибо
Ответ №1:
NSPredicate *p=[NSPredicate predicateWithFormat:@"source in %@", anArrayOfSourceStrings];
Ответ №2:
NSPredicate *pred = [NSPredicate predicateWithFormat:@»Источник в (%@, %@, %@, %@, …), @» source1″, @»source3″, …];
Комментарии:
1. Есть ли лучший способ, чтобы я мог присвоить массив, содержащий желаемые имена источников, NSPredicate? в противном случае, что, если количество желаемых имен источников равно 100??