 <p>You can use these rules of thumb to decide what storage model will work for your app.</p> <ul> <li>If the data fits in memory entirely and is relatively unstructured, use plist</li> <li>If the data fits in memory entirely and has tree-like structure, use XML</li> <li>If the data does not fit in memory and has a structure of a graph, and the app does not need extraordinary query capabilities, use Core Data</li> <li>If the data does not fit in memory, has a complex structure, or the app benefits from powerful query capabilities provided by relational databases, use sqlite</li> <li>If the data must be secret (e.g. a password), use <a href="https://developer.apple.com/library/ios/#documentation/security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html">keychain</a>.</li> </ul> <p>Note that these choices often overlap, because multiple storage models will fit the same app. Your final decision depends on your personal preferences - you pick a technology that you understand better.</p> <p>There was a <a href="http://stackoverflow.com/questions/523482/core-data-vs-sqlite-3">very good question about sqlite vs. Core Data</a> on Stack Overflow, you may want to read through the answers to that question.</p>