#ios #arrays #object #dictionary
#iOS #массивы #объект #словарь
Вопрос:
У меня есть 3 массива:
Название, компания, описание. Каждый содержит 200 строк.
Имя = Адам, Венди, Остин и т.д. Компания = saumsung, apple, Microsoft и др. Описание = Этот сотрудник хороший, этот сотрудник много работает, этот сотрудник плохой и т.д.
Мне нужно соединить эти три массива, чтобы при поиске и возврате wendy я мог также вернуть, в какой компании она работает, и ее описание.
Я исследовал, и кажется, что лучший способ сделать это — объединить 3 массива в словарь с 3 ключами: название, компания и описание. Может ли кто-нибудь указать мне направление, как начать с этого? или скажите мне, может быть, словарь — не лучший метод.
Все найденные мной учебные пособия отличаются тем, что в них есть массивы, которые они хотят объединить в словарь, но каждый массив содержит значения для каждого ключа. Мои ключи уже разделены.
Комментарии:
1. Вы спрашиваете, как объединить их в один словарь?? Я не могу сказать, о чем вы здесь спрашиваете. Кроме того, в качестве дополнительного примечания, мы здесь, чтобы направлять вас, а не писать ваш код за вас.
2. Похоже, вам нужен массив массивов, а не словарь массивов. Вы никогда не упоминали, какими будут ваши ключи для словаря.
3. @esqew надеюсь, что мои изменения прояснят это, и я не просил вас писать мой код, я попросил «для указателей».
4. Я не понимаю, чего вы хотите. Как у вас может быть 3 разных значения в качестве ключей?
5. @Blake — не предоставляя код, который вы пробовали ранее, сообщество (обычно правильно) предполагает, что вы сами ничего не пробовали, и вы публикуете здесь, чтобы кто-то написал код от вашего имени.
Ответ №1:
Надеюсь, этот пример поможет вам на вашем пути.
NSArray *names;
NSArray *companies;
NSArray *descriptions;
NSMutableDictionary *employeeInfoByName = [NSMutableDictionary dictionary];
for (int ii=0; ii<names.count; ii) {
EmployeeInfo *employeeInfo = [[EmployeeInfo alloc] init];
employeeInfo.company = companies[ii];
employeeInfo.description = descriptions[ii];
[employeeInfoByName setObject:employeeInfo forKey:names[ii]];
}
Пожалуйста, найдите время, чтобы понять этот код. Не копируйте и не вставляйте.