Какао / Objective-C записать вложенные строки / данные в файл, как? - PullRequest
0 голосов
/ 02 января 2012

Мне нужно создать xml .plist с 6 записями, причем запись 5 является входной строкой от пользователя, остальное - все фиксированные данные. Я не уверен, что лучший способ сделать это? Кажется, все должно быть просто, но я не добился большого успеха.

Данные, которые нужно записать, выглядят так:

<?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>AREA51</key>
    <dict>
       <key>ORIGIN</key>
       <data>M45</data>

          ...(4 more records)... 

              (USER STRING) 

          ...(1 more record)...

   </dict>
</dict>
</plist>

Я пытался следовать некоторым примерам, но я думаю, что они устарели и не соответствуют спецификациям. спасибо!

Ответы [ 2 ]

5 голосов
/ 02 января 2012

Я не знаю, как учебник для этого может быть устаревшим, то, как вы это делаете, не изменилось за десять лет.Создайте словарь и используйте метод -writeToFile:atomically:.

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    // object first...
    [NSDictionary dictionaryWithObjectsAndKeys:
        @"M45", @"ORIGIN", // object first, then key
        ... // repeat
        nil],
    // then key...
    @"AREA51",
    nil];
[dict writeToFile:path atomically:NO];

(Я не знаю, действительно ли вам нужно атомарное письмо или нет. Можно сменить его на YES, если вы не уверены.)

1 голос
/ 02 января 2012

Записи в словаре * неупорядочены, поэтому не следует ожидать, что запись пользователя будет в какой-либо конкретной позиции.Вместо этого вы используете ключ для извлечения данных, поэтому у вас может быть:

<dict>
   <key>ORIGIN</key>
   <data>M45</data>
   <key>USERENTRY</key>
   <data>Hello world!</data>
   ...
</dict>

или это может быть:

<dict>
   <key>USERENTRY</key>
   <data>Hello world!</data>
   <key>ORIGIN</key>
   <data>M45</data>
   ...
</dict>

или какой-либо другой порядок.Инструкции Deitrich Epp для написания списка должны быть всем, что вам нужно для записи данных.Просто поймите, что вы можете использовать любой объект для данных, включая строку пользователя.

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