Подтвердить что ты не робот

Как определить индекс массива в Objective C?

У меня есть два массива в Objective C, и мне нужно найти какой-то индекс, чтобы я мог вставить его в одно и то же место. Например, скажем, у меня есть "массив имен" и "возрастный массив". Как узнать, какой индекс "charlie" находится в "массиве имен", поэтому я знаю, где вставить его возраст в массив "age"?

Спасибо

4b9b3361

Ответ 2

В Cocoa параллельные массивы - это путь к обречению и разрушению. Вы не можете эффективно использовать их с помощью Bindings, поэтому вам придется писать много кода клея вместо этого, как будто Bindings не существует. Более того, вы уничтожаете любую будущую поддержку AppleScript/Scripting Bridge, которую вы можете намереваться получить, прежде чем даже начать ее реализовывать.

Правильный способ - создать класс модели с свойствами name и age и иметь один массив экземпляров этого класса. Затем, чтобы найти элемент по имени или возрасту, используйте NSPredicate для фильтрации массива и indexOfObjectIdenticalTo:, чтобы найти индекс каждого элемента из фильтрованного массива в основном массиве.

Разница между indexOfObject: и indexOfObjectIdenticalTo: заключается в том, что первая отправит сообщения isEqual:, чтобы определить, является ли каждый объект тем, который он ищет, тогда как последний будет искать только определенный объект, который вы передали., вы можете использовать indexOfObject: с объектом, который не находится в массиве, но равен тому, который есть, чтобы найти равный объект в массиве.

Ответ 3

Вы можете просто использовать NSDictionary, если вы выполняете поиск по строкам.