#iphone #objective-c #data-structures #nsdictionary #nsmutabledictionary
#iPhone #objective-c #структуры данных #nsdictionary #nsmutabledictionary
Вопрос:
Я пытаюсь создать структуру данных для трех полей. Один метод может захватить два поля из базы данных sqlite. Другой метод захватывает данные, используя два поля из другой базы данных sqlite. Каков хороший способ хранения данных? Три поля, которые мне нужны, имеют тип:
NSString, key: @"Name"
NSInteger, key: @"ID"
NSArray, key: @"Info"
Я думал, что сделаю массив словарей. Итак, в первом методе я получаю NSString и NSInteger, создаю словарь и создаю из него массив этих словарей. Затем я застрял, думая, как я даже распечатываю данные для NSMutableDictionary с двумя ключами (вопрос № 1).
Тогда второе, о чем я подумал, это то, могу ли я затем использовать поля Name, ID для получения другой части данных из другой таблицы и добавления новой пары ключ / значение в словарь. Я не был уверен, что это можно сделать (вопрос № 2).
И я не знал, есть ли просто лучший способ подойти к этому с другой структурой данных (вопрос № 3).
Спасибо!
Комментарии:
1. Что вы подразумеваете под «распечатать»? Вы можете, конечно, использовать
description
для создания «диагностического дампа» всей структуры, но если вы хотите печатать вещи в удобном, определенном формате, вам нужно написать логику для этого. В принципе, с NSDictionarys / NSArrays не сложнее, чем с обычными структурами в стиле C.2. @DanielRHicks Да, я пытался распечатать значения для NSDictionary при наличии нескольких ключей.
Ответ №1:
Создайте класс для элементов данных, iVar для каждого имени, идентификатора, информации. Тогда у вас есть большая гибкость.
Хотя изначально NSDictionary часто кажется простым решением, обычно лучше создать класс, который действительно довольно прост, а удобство использования, как правило, лучше.