У меня есть массив «белых списков», и я хочу отфильтровать NSDictionary на основе этих ключей;Фильтр NSDictionary на основе массива ключей
NSArray *whiteList = @["one", "two"];
NSDictionary *dictionary = @{
@"one" : @"yes",
@"two" : @"yes",
@"three" : @"no"
};
NSDictionary *whiteDictionary = [dictionary dictionaryWithValuesForKeys:whiteList];
Который производит:
{
one = "yes";
two = "yes;
}
Однако если мой словарь не включает в себя один или несколько ключей:
NSArray *whiteList = @["one", "two"];
NSDictionary *dictionary = @{
@"one" : @"yes"
};
NSDictionary *whiteDictionary = [dictionary dictionaryWithValuesForKeys:whiteList];
я вернусь:
{
one = "yes";
two = "<null>";
}
ли существует способ фильтрации словаря на основе набор ключей без получения ключей, которых не существует.
Возможно ли использовать предикат или более функциональную парадигму? – lostintranslation
Вы можете отфильтровать ваши белые клавиши со значением [dictionaryInstance allKeys], однако это не отфильтровывает нули, которые фактически вставляются в коллекцию в качестве заполнителей. – NSIRLConnection