Как расшифровать этот вложенный файл словаря .plist с помощью клавиш Dynami c, чтобы быстро преобразовать класс или структуру в swift? - PullRequest
0 голосов
/ 01 мая 2020

Я искал все целые числа rnet, чтобы правильно проанализировать следующий список в swift, но мне не удалось найти правильный способ сделать это. Пожалуйста помоги. Я пытался с несколькими структурами и классами безрезультатно, данные не будут заполнять структуры, как следует. Если я пытаюсь преобразовать его из комплекта как NSDictionary, он работает, но если я пытаюсь перебрать все его словари из class1, class2, et c, они отображаются как одно единственное значение, с которым я не могу перебирать или работать с ним.

<?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>class1</key>
    <dict>
        <key>RANDOM_NAME1</key>
        <dict>
            <key>path</key>
            <array>
                <string>test</string>
                <string>test</string>
                <string>test</string>
            </array>
        </dict>
        <key>RANDOM_NAME2</key>
        <dict>
            <key>path</key>
            <array>
                <string>test</string>
                <string>test</string>
                <string>test</string>
                <string>test</string>
                <string>test</string>
            </array>
        </dict>
    </dict>
    <key>class2</key>
    <dict>
        <key>RANDOM_NAME1</key>
        <dict>
            <key>path</key>
            <array>
                <string>test</string>
                <string>test</string>
                <string>test</string>
            </array>
        </dict>
        <key>RANDOM_NAME2</key>
        <dict>
            <key>path</key>
            <array>
                <string>test</string>
                <string>test</string>
                <string>test</string>
                <string>test</string>
                <string>test</string>
            </array>
        </dict>
    </dict>
    <key>class3</key>
    <dict>
        <key>RANDOM_NAME1</key>
        <dict>
            <key>path</key>
            <array>
                <string>test</string>
                <string>test</string>
                <string>test</string>
            </array>
        </dict>
        <key>RANDOM_NAME2</key>
        <dict>
            <key>path</key>
            <array>
                <string>test</string>
                <string>test</string>
                <string>test</string>
                <string>test</string>
                <string>test</string>
            </array>
        </dict>
    </dict>
</dict>
</plist>

Обратите внимание, что RANDOM_NAME1, RANDOM_NAME2 et c - это случайные ключи, которые я не знаю, и их количество может варьироваться.

1 Ответ

0 голосов
/ 02 мая 2020

Вы можете прочитать информацию из plist-файла, используя этот код:

Bundle.main.object(forInfoDictionaryKey: RANDOM_NAME1);

В противном случае вы хотите получить весь plist-файл в качестве словаря для работы с ним, вы можете использовать этот код:

Bundle.main.infoDictionary
...