Я нахожу некоторые трудности в доступе к изменяемым словарным ключам и значениям в Objective-C.
Предположим, у меня есть это:
NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
Я могу установить ключи и значения. Теперь я просто хочу получить доступ к каждому ключу и значению, но я не знаю количество установленных ключей.
В PHP это очень просто, примерно так:
foreach ($xyz as $key => $value)
Как это возможно в Objective-C?
objective-c
nsdictionary
enumeration
nsmutabledictionary
key-value
Сагар Р. Котари
источник
источник
for (NSString* key in [xyz allKeys])
концептуально то же самое.Только чтобы не пропустить опцию 10.6+ для перечисления ключей и значений с использованием блоков ...
Если вы хотите, чтобы действия происходили одновременно:
источник
*stop
? Как вы используете это? Любая ссылка?Если вам нужно изменить словарь при перечислении:
источник
allKeys
возвращает копию ключей. Так что безопасно мутировать словарь.Самый простой способ перечислить словарь
где
tDictionary
находитсяNSDictionary
илиNSMutableDictionary
вы хотите повторить.источник
Я предлагаю вам прочитать перечисление: пересекающее на элементы коллекции часть коллекций Руководства по программированию на какао . Существует пример кода для ваших нужд.
источник
Быстрое перечисление было добавлено в 10.5 и в iPhone OS, и это значительно быстрее, а не только синтаксический сахар. Если вам нужно ориентироваться на более раннюю среду выполнения (то есть 10.4 и обратно), вам придется использовать старый метод перечисления:
Вы не освобождаете объект перечислителя и не можете его сбросить. Если вы хотите начать все сначала, вы должны запросить новый объект перечислителя из словаря.
источник
Вы можете использовать,
-[NSDictionary allKeys]
чтобы получить доступ ко всем ключам и пройти через него.источник