我想将.plist转换为sqlite

时间:2013-01-17 20:09:41

标签: ios xcode sqlite parsing plist

我正在使用plist将几十个数据解析成tableview。它工作得很好。然而,它没有受到保护。如果他打开.ipa文件的内容,有人可以轻松访问该plist文件。我想保护我的数据。反正有保护.plist文件吗?据我所知,Sqlite通过将值更改为复杂键来保护数据。然而,如果我要为我的应用程序使用sqlite,我必须改变将数据解析为字符串的方式。我对SQLite一无所知。

从哪里开始?你有什么建议?是否有更简单,更好的方法来保护ios应用程序中的数据?

提前致谢。

我的plist示例:

<?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">
<array>
    <dict>
        <key>quizName</key>
        <string>History</string>
        <key>quizDescription</key>
        <string>Check your knowledge about great historical events, who did what where to whom!</string>
        <key>quizImageName</key>
        <string>quiz-history.png</string>
        <key>questions</key>
        <array>
            <dict>
                <key>question</key>
                <string>In monarchy, for how long does the head of state rule?</string>
                <key>answers</key>
                <array>
                    <string>5 years</string>
                    <string>until someone else is elected</string>
                    <string>as long as he/she is the party leader</string>
                    <string>until death or abdication</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>3</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>When was World War 2 fought?</string>
                <key>answers</key>
                <array>
                    <string>1935 - 1939</string>
                    <string>1914 - 1918</string>
                    <string>1939 - 1945</string>
                    <string>1918 - 1939</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>2</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Peloponnesian War was famous greek war between...</string>
                <key>answers</key>
                <array>
                    <string>Athens and Sparta</string>
                    <string>Greece and Persia</string>
                    <string>Athens and Attica</string>
                    <string>Greece and Macedonia</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Battle of the Pyramids was fought between which two forces?</string>
                <key>answers</key>
                <array>
                    <string>Egypt and Rome</string>
                    <string>French and Mamluk</string>
                    <string>Egypt and Persia</string>
                    <string>Mamluk and Rome</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>1</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>First Winter Olypmics were held in...</string>
                <key>answers</key>
                <array>
                    <string>Italy, 1920</string>
                    <string>Germany, 1921</string>
                    <string>England, 1928</string>
                    <string>France, 1924</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>3</integer>
            </dict>
        </array>
    </dict>
    <dict>
        <key>quizName</key>
        <string>Animal kingdom</string>
        <key>quizDescription</key>
        <string>Not sure how many legs does the spider have? Test your knowledge and find out!</string>
        <key>quizImageName</key>
        <string>quiz-animals.png</string>
        <key>questions</key>
        <array>
            <dict>
                <key>question</key>
                <string>Where were the cats domesticated?</string>
                <key>answers</key>
                <array>
                    <string>In Greece, around 500 B.C.</string>
                    <string>In ancient Egypt, around 1.600 B.C.</string>
                    <string>In China, around 2.000 B.C.</string>
                    <string>In Mongolia, around 1.400 B.C.</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>1</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Dogs have a range of hearing of...</string>
                <key>answers</key>
                <array>
                    <string>approximately 40 Hz to 60,000 Hz</string>
                    <string>approximately 10,000 Hz to 60,000 Hz</string>
                    <string>approximately 40 Hz to 5,000 Hz</string>
                    <string>approximately 5,000 Hz to 30,000 Hz</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Meerkats can be found where?</string>
                <key>answers</key>
                <array>
                    <string>Australia</string>
                    <string>north Africa and south-west Asia</string>
                    <string>south Africa</string>
                    <string>Africa and Australia</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>2</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Biggest mammal is...</string>
                <key>answers</key>
                <array>
                    <string>Blue whale</string>
                    <string>Elephant</string>
                    <string>Killer whale</string>
                    <string>Rhinoceros</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Which of these animals sheads it&apos;s skin?</string>
                <key>answers</key>
                <array>
                    <string>monkey</string>
                    <string>narwal</string>
                    <string>snake</string>
                    <string>cow</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>2</integer>
            </dict>
        </array>
    </dict>
</array>
</plist>

1 个答案:

答案 0 :(得分:1)

如果您只想加密plist文件,请查看at this SO question

如果你真的想要sqlite,那么不要直接处理sqlite,而是看看CoreData。核心数据是一个Apple框架,它使用NSObject和关系很容易存储和获取数据。如果需要,核心数据可以使用sqlite进行存储。这是一个相当陡峭的学习曲线,但它值得学习,因为它是一个非常有用的框架。

请记住,sqlite DB只存储在一个任何人都可以默认读取的文件中。因此,您需要更多的努力来加密它。