Plist到SQLITE

时间:2014-01-10 20:36:54

标签: ios sqlite plist converter

我正在尝试将我的.plist转换为SQLITE数据库,因为我的应用程序因为.plist太大而被拒绝了。

我已经尝试了几天但仍然不知道如何转换它。首先尝试找到一些已转换但无法找到任何所以现在我正在尝试转换使用枚举的代码,但无法得到正确的结果。

任何人都可以帮我将其转换为SQLITE(如果需要,只需要SQL INSERT的东西和关系,因为我将使用FMDB,它很容易在Xcode中实现):

<array>
<dict>
    <key>State</key>
    <string>Alabama</string>
    <key>Area code</key>
    <dict>
        <key>205</key>
        <array>
            <dict>
                <key>City</key>
                <string>Birmingham, AL</string>
                <key>County</key>
                <string>Jefferson</string>
            </dict>
            <dict>
                <key>City</key>
                <string>Birmingham, AL</string>
                <key>County</key>
                <string>Shelby</string>
            </dict>
        </array>
        <key>251</key>
        <array>
            <dict>
                <key>City</key>
                <string>Mobile, AL</string>
                <key>County</key>
                <string>Mobile</string>
            </dict>
            <dict>
                <key>City</key>
                <string>Atmore, AL</string>
                <key>County</key>
                <string>Escambia</string>
            </dict>
        </array>
    </dict>

    <key>Zip code</key>
    <array>
        <dict>
            <key>City</key>
            <string>Wetumpka</string>
            <key>County</key>
            <string>Elmore</string>
            <key>Zip code</key>
            <string>36093</string>
        </dict>
        <dict>
            <key>City</key>
            <string>Winfield</string>
            <key>County</key>
            <string>Fayette</string>
            <key>Zip code</key>
            <string>35594</string>
        </dict>
    </array>
</dict>

顶部数组包含状态字典(这只是阿拉巴马州,包括所有状态,但应该足够了)。

感谢。

1 个答案:

答案 0 :(得分:1)

您需要迁移到Core Data。将模型添加到项目中,它位于文件向导中的“Core Data”下。

副手看起来你需要两个实体:State和AreaCode; State将与AreaCode实体建立toMany关系。一旦在模型构建器中构造了这些实体,就可以导出它们,Xcode将为您生成类。

如果您想直接迁移当前的plist;我认为最好的方法是将plist打开为字典;对于每个State字典,调用initWithEntity:并从字典中为您的属性执行相应的 - [setValue:forKey:]。然后,一旦保存了对象上下文,就会保留所有内容。