Как указано в комментариях ниже, вы должны использовать [NSNull null]
Вероятно, не без написания собственного метода-обертки или какой-либо категории для выполнения.этот.Тем не менее, если вы просто хотите узнать, какой ключ не был найден, вы можете просто посмотреть на массив ключей, который вы передали, так как индексы будут совпадать.
ВыКонечно, можно использовать блок.Я не думаю, что он будет запущен.Это должно быть очень легко проверить (просто определите блок, который выводит что-то на консоль и попробуйте).
Это действительно зависит от контекста и того, что вы делаете сделать с возвращенным массивом.Нет ничего плохого в том, чтобы поместить его в массив и вернуть, но я бы поставил под сомнение решение использовать все, что не соответствует типам объектов, которые вы ожидаете получить, для ключей, которые равны находится в NSDictionary.
РЕДАКТИРОВАТЬ: На самом деле вы, вероятно, можете достичь того, что вы хотите для 2. как это:
NSMutableArray *objects = [myDictionary objectsForKeys:myKeys notfoundMarker:[NSNull null]];
for (int ii = 0; ii < [objects count]; ii++ ) {
if ([objects objectAtIndex:ii] == [NSNull null]) {
[objects insertObject:[myKeys objectAtIndex:ii] atIndex:ii];
}
}