如何在swift中解码这个带有动态键的嵌套字典.plist文件到swift类或结构?

问题描述 投票:0回答:1

我一直在搜索所有的互联网,以便在swift中正确解析以下plist,但我无法设法找到正确的方法。请帮助我。我已经尝试了多个结构和类,但没有结果,数据不会像它应该的那样填充结构.如果我尝试从bundle中把它投为NSDictionary,它就会工作,但如果我尝试从class1、class2等迭代它的所有字典,就会出现一个单一的值,我无法迭代或工作。

<?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 等都是我不知道的随机键,它们的数量可能会有所不同。

swift parsing plist
1个回答
0
投票

你可以用这个代码从plist文件中读取信息。

Bundle.main.object(forInfoDictionaryKey: RANDOM_NAME1);

否则,你想收到所有的plist文件作为字典与他一起工作,你可以使用这个代码。

Bundle.main.infoDictionary
© www.soinside.com 2019 - 2024. All rights reserved.