У меня есть объект, называемый media_item, который имеет кучу свойств, связанных с ним, но одним из свойств является набор стран, которые являются строками. То, что я хочу сделать, это получить набор (уникальный список) всех доступных счетчиков во всех элементах мультимедиа. Например, например, у меня есть 2 объекта. object1.countries[us,gbr,spa]
и object2.countries[us,chi,fre]
. То, что я хочу сделать, это создать другой набор этих объектов и отобразить их пользователю. Итак, результат должен быть newArray[us,gbr,spa,chi,fre]
Я пробовал использовать NSPredicate, но я не могу понять, что он форматирует строку heres, как я думал, будет работать.как фильтровать этот массив с помощью предиката?
NSMutableArray *all_media_items = [[[[NSMutableArray arrayWithArray:_presentations]arrayByAddingObjectsFromArray:_videos]arrayByAddingObjectsFromArray:_brochures]mutableCopy];
NSSet *all_available_countries_set = [[NSSet setWithArray:all_media_items]filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"self.countries"]];
В этом случае self будет считаться медиа-объектом правильно? а затем точечный аксессуар говорит о просмотре всех индексов массива и помещает их в новый атрибут, если они не дублируются. Это выглядит правильно, но я не могу понять это. Есть идеи?