Як можна створити NSMutableDictionary з кількома ключами і значеннями

Я хочу створити словник nsmutmutable з такою структурою:

"user1": {
            "phone Number": "123-123-1234"
            "email": "[email protected]"
            "title": "sales"
            }
"user1": {
            "phone Number": "123-123-1234"
            "email": "[email protected]"
            "title": "support"
            }
"user2": {
            "phone Number": "123-123-1234"
            "email": "[email protected]"
            "title": "management"
            } 

хто з вас знає, як я можу це зробити?

0
Ви не можете. Записи повинні мати різні ключі, і у вас є дві записи з ім'ям "user1". (І зауважте, що "значення" ваших записів "userN" - це інші об'єкти словника, а не просто структура всередині одного словника.)
додано Автор Hot Licks, джерело
Ви не можете. Записи повинні мати різні ключі, і у вас є дві записи з ім'ям "user1". (І зауважте, що "значення" ваших записів "userN" - це інші об'єкти словника, а не просто структура всередині одного словника.)
додано Автор Hot Licks, джерело
Ви не можете. Записи повинні мати різні ключі, і у вас є дві записи з ім'ям "user1". (І зауважте, що "значення" ваших записів "userN" - це інші об'єкти словника, а не просто структура всередині одного словника.)
додано Автор Hot Licks, джерело
@TomSwift - операційна програма повинна навчитися конструювати її за допомогою setObject та ін. Інакше розуміння просто не буде.
додано Автор Hot Licks, джерело
@TomSwift - операційна програма повинна навчитися конструювати її за допомогою setObject та ін. Інакше розуміння просто не буде.
додано Автор Hot Licks, джерело
@TomSwift - операційна програма повинна навчитися конструювати її за допомогою setObject та ін. Інакше розуміння просто не буде.
додано Автор Hot Licks, джерело
@Abizern - Так, я зробив це, щоб створити статичну таблицю. Використання нової літеральної нотації @ , мабуть, краще, якщо ви збираєтеся кодувати дані у вашому коді. Але JSON - це шлях, якщо ви читаєте його з файлу.
додано Автор Hot Licks, джерело
@Abizern - Так, я зробив це, щоб створити статичну таблицю. Використання нової літеральної нотації @ , мабуть, краще, якщо ви збираєтеся кодувати дані у вашому коді. Але JSON - це шлях, якщо ви читаєте його з файлу.
додано Автор Hot Licks, джерело
@Abizern - Так, я зробив це, щоб створити статичну таблицю. Використання нової літеральної нотації @ , мабуть, краще, якщо ви збираєтеся кодувати дані у вашому коді. Але JSON - це шлях, якщо ви читаєте його з файлу.
додано Автор Hot Licks, джерело
Необов'язковий зовнішній словник або змінюваний словник, що містить змінні словники?
додано Автор Wain, джерело
Я згадав лише JSON, тому що така структура виглядає. Я бачив достатньо запитань на те, щоб дізнатися, що опитувальники не завжди ставлять у запитання всю відповідну інформацію. Зі структури схоже, що це JSON-відповідь, і вони можуть не знати, що вони можуть перетворити його в словник (або масив) безпосередньо, не розгортаючи його спочатку.
додано Автор Abizern, джерело
Я згадав лише JSON, тому що така структура виглядає. Я бачив достатньо запитань на те, щоб дізнатися, що опитувальники не завжди ставлять у запитання всю відповідну інформацію. Зі структури схоже, що це JSON-відповідь, і вони можуть не знати, що вони можуть перетворити його в словник (або масив) безпосередньо, не розгортаючи його спочатку.
додано Автор Abizern, джерело
Я згадав лише JSON, тому що така структура виглядає. Я бачив достатньо запитань на те, щоб дізнатися, що опитувальники не завжди ставлять у запитання всю відповідну інформацію. Зі структури схоже, що це JSON-відповідь, і вони можуть не знати, що вони можуть перетворити його в словник (або масив) безпосередньо, не розгортаючи його спочатку.
додано Автор Abizern, джерело
Чому б не просто використовувати NSJSONSerialization, щоб перетворити його на словник і отримати його змінювану копію?
додано Автор Abizern, джерело
Чому б не просто використовувати NSJSONSerialization, щоб перетворити його на словник і отримати його змінювану копію?
додано Автор Abizern, джерело
Чому б не просто використовувати NSJSONSerialization, щоб перетворити його на словник і отримати його змінювану копію?
додано Автор Abizern, джерело
@Hot Licks - не соромтеся розміщувати власну відповідь;)
додано Автор TomSwift, джерело
@Hot Licks - не соромтеся розміщувати власну відповідь;)
додано Автор TomSwift, джерело
@Hot Licks - не соромтеся розміщувати власну відповідь;)
додано Автор TomSwift, джерело
@Hot Licks - я підозрюю, що дві відповідні ключі є помилкою і насправді питання про те, як заповнити NSMutableDictionary ключем/значеннями - без виклику setObject: forKey: повторюється.
додано Автор TomSwift, джерело
@Hot Licks - я підозрюю, що дві відповідні ключі є помилкою і насправді питання про те, як заповнити NSMutableDictionary ключем/значеннями - без виклику setObject: forKey: повторюється.
додано Автор TomSwift, джерело
@Hot Licks - я підозрюю, що дві відповідні ключі є помилкою і насправді питання про те, як заповнити NSMutableDictionary ключем/значеннями - без виклику setObject: forKey: повторюється.
додано Автор TomSwift, джерело

7 Відповіді

Щось на зразок цього:

    NSMutableDictionary* md = [@{   @"user1" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" },

                                    @"user2" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" },

                                    @"user3" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" }

                                                   } mutableCopy];

або:

    NSMutableDictionary* md2 = [NSMutableDictionary dictionaryWithDictionary:
                                @{  @"user1" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" },

                                    @"user2" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" },

                                    @"user3" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" }
                                } ];

Якщо ви хочете, щоб кожен внутрішній словник був змінюваним, можна застосувати той самий шаблон:

    NSMutableDictionary* md3 = [@{  @"user1" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" } mutableCopy],

                                    @"user2" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" } mutableCopy],

                                    @"user3" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" } mutableCopy]

                               } mutableCopy];
2
додано

Щось на зразок цього:

    NSMutableDictionary* md = [@{   @"user1" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" },

                                    @"user2" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" },

                                    @"user3" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" }

                                                   } mutableCopy];

або:

    NSMutableDictionary* md2 = [NSMutableDictionary dictionaryWithDictionary:
                                @{  @"user1" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" },

                                    @"user2" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" },

                                    @"user3" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" }
                                } ];

Якщо ви хочете, щоб кожен внутрішній словник був змінюваним, можна застосувати той самий шаблон:

    NSMutableDictionary* md3 = [@{  @"user1" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" } mutableCopy],

                                    @"user2" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" } mutableCopy],

                                    @"user3" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" } mutableCopy]

                               } mutableCopy];
2
додано

Щось на зразок цього:

    NSMutableDictionary* md = [@{   @"user1" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" },

                                    @"user2" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" },

                                    @"user3" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" }

                                                   } mutableCopy];

або:

    NSMutableDictionary* md2 = [NSMutableDictionary dictionaryWithDictionary:
                                @{  @"user1" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" },

                                    @"user2" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" },

                                    @"user3" : @{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" }
                                } ];

Якщо ви хочете, щоб кожен внутрішній словник був змінюваним, можна застосувати той самий шаблон:

    NSMutableDictionary* md3 = [@{  @"user1" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"sales" } mutableCopy],

                                    @"user2" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"support" } mutableCopy],

                                    @"user3" : [@{   @"phone Number" : @"123-123-1234",
                                                    @"email" : @"[email protected]",
                                                    @"title" : @"management" } mutableCopy]

                               } mutableCopy];
2
додано

Ви можете просто визначити об'єкт "MyContact". Оскільки ви хочете "структуру", схоже, що буде робити те, що ви хочете, якщо я щось відсутній:

@interface MyContact : NSObject {

@property (retain) PhoneNumber;
@property (retain) Email;

- (id) initWithPhone: phone_ Email: _email;
}

...потім

NSMutableDictionary *people = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
   [MyContact initWithPhone: some_number Email: some_email] , @"user1", 
   [MyContact initWithPhone: other_number Email: other_email], @"user2", nil ] ;
0
додано

Ви можете просто визначити об'єкт "MyContact". Оскільки ви хочете "структуру", схоже, що буде робити те, що ви хочете, якщо я щось відсутній:

@interface MyContact : NSObject {

@property (retain) PhoneNumber;
@property (retain) Email;

- (id) initWithPhone: phone_ Email: _email;
}

...потім

NSMutableDictionary *people = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
   [MyContact initWithPhone: some_number Email: some_email] , @"user1", 
   [MyContact initWithPhone: other_number Email: other_email], @"user2", nil ] ;
0
додано

Ви можете просто визначити об'єкт "MyContact". Оскільки ви хочете "структуру", схоже, що буде робити те, що ви хочете, якщо я щось відсутній:

@interface MyContact : NSObject {

@property (retain) PhoneNumber;
@property (retain) Email;

- (id) initWithPhone: phone_ Email: _email;
}

...потім

NSMutableDictionary *people = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
   [MyContact initWithPhone: some_number Email: some_email] , @"user1", 
   [MyContact initWithPhone: other_number Email: other_email], @"user2", nil ] ;
0
додано

Ви можете просто визначити об'єкт "MyContact". Оскільки ви хочете "структуру", схоже, що буде робити те, що ви хочете, якщо я щось відсутній:

@interface MyContact : NSObject {

@property (retain) PhoneNumber;
@property (retain) Email;

- (id) initWithPhone: phone_ Email: _email;
}

...потім

NSMutableDictionary *people = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
   [MyContact initWithPhone: some_number Email: some_email] , @"user1", 
   [MyContact initWithPhone: other_number Email: other_email], @"user2", nil ] ;
0
додано