NSArray
реализует кодирование значения ключа метод valueForKey:
таким образом, что он возвращает новый массив.Новый массив содержит результаты запроса каждого объекта в исходном массиве для указанного значения.В этом случае NSNumber
имеет stringValue
, поэтому все, что вам нужно сделать, это:
NSArray * b = [a valueForKey:@"stringValue"];
Простое старое быстрое перечисление (или enumerateObjectsUsingBlock:
) не будет ужасным решением.Реализация NSArray
valueForKey:
, скорее всего, использует внутренний цикл for
, и это будет легко понять любому, кто прочитает его позже.