Динамическое имя NSMutableDictionary? - PullRequest
0 голосов
/ 10 мая 2010

Я загружаю из txt-файла много информации, и я хотел бы, если возможно, динамически создать словарь NSmutable с элементами txt.

Например, каждый такой: идентификатор элемента | дата | текст

То, что я спрашиваю, является эквивалентом строки NSStringWithFormat :. Можем ли мы сделать то же самое для изменяемого словаря?

Чтобы быть более практичным, скажем, дата NSString * равна "23/12/2009" (для Европы). Я хочу создать словарь с именем 23/12/2009, не объявляя * 23/12/2009, а просто что-то вроде dictionaryWithFormat: @ "% @", date];

Я застрял на этом и даже не знаю, возможно ли это. Если нет, то как лучше всего подойти к этому?

Спасибо всем

Привет

Ответы [ 3 ]

0 голосов
/ 10 мая 2010

Похоже, вы хотите словарь словарей. Создайте каждый нужный вам словарь и вставьте его в другой родительский словарь, используя эту дату, например, в качестве ключа.

0 голосов
/ 10 мая 2010

Можете ли вы вместо этого превратить txt-файл в xml-файл? Затем вы можете вызвать метод dictionaryWithContentsOfFile: для создания NSMutableDictionary из файла.

Вы можете иметь несколько словарей в xml-файле, определив массив в xml-файле и прочитав его с помощью метода NSArray arrayWithContentsOfFile . Или вы можете иметь словари словарей в XML-файле, это то, что я использую в своем приложении ClockSmith, чтобы отслеживать все компоненты часов и их настройки. Вот выдержка из XML-файла, чтобы дать вам идею. Он был создан с помощью метода writeToFile NSDictionary: atomically: .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>290900405.808</key>
    <dict>
        <key>Description_Key</key>
        <string>Digital Clock - AM/PM</string>
        <key>NIB_Name_Key</key>
        <string>ClockDigital12Hr</string>
        <key>Option_Value_Key</key>
        <integer>3</integer>
    </dict>
    <key>290900405.810</key>
    <dict>
        <key>Description_Key</key>
        <string>One Day Calendar</string>
        <key>NIB_Name_Key</key>
        <string>CalendarDay</string>
        <key>Option_Value_Key</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>
0 голосов
/ 10 мая 2010

Для разделения компонентов строки вы можете использовать -[NSString componentsSeparatedByString:], который возвращает NSArray строк. Чтобы получить дату из строки, вы можете использовать -[NSDateFormatter dateFromString:]. Если вам нужен более сложный синтаксический анализ, вы можете посмотреть на NSScanner.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...