我正在编写一个可以保存音乐专辑的iOS应用程序(这只是我为了它的乐趣所做的练习)。 每张专辑都有歌手,歌曲名称,时间和图片 最终结果将是许多具有许多细节的对象,包括附加到每个对象的图片。我是否应该考虑使用plist做类似的事情? (图片可以存储在plist中吗?)
保存和访问数据的最佳方法是什么? 我是iOS新手,我从培训视频中看到Core Data不推荐给初学者用户。那是真的吗?
如果我要使用plist,我应该为每种类型创建一个plist,例如rap.plist,rock.plist等'或者只是一个大数据.plist?
由于
答案 0 :(得分:2)
我会选择核心数据。如果在xcode中创建新项目时选择了正确的模板,则可以显着减少一次性开销工作。
通过这种简单的结构,我会说模板几乎可以提供您所需的一切。只需定义您的模型和布局,然后就可以了。
只有图像,我会花更多的时间来思考它。我个人从未将图像数据放入核心数据本身。我宁愿将它们存储为文件,在我的核心数据模型中,我只存储了路径和文件名来访问它。作为文件名,我只使用了时间戳。您可以使用一些自动增量或其他唯一ID技术,但时间戳也可以。无论如何,用户都看不到它。
答案 1 :(得分:1)
您需要更多代码来设置核心数据堆栈(商店协调员,商店,对象模型和上下文)
它有点复杂但不应该吓跑你。 阅读一个plist确实很容易,但虽然对于较小的数据(如info.plist)有好处,但它不能扩展,很快就需要一个完整的数据库
答案 2 :(得分:0)
当您编辑原始问题时,现在决定使用plist。 在这种情况下,我会选择每个ablum一个plist和一个整体plist作为专辑列表。 当然,你可以在类别等方面使用更多的plist。
但是,如果您正在考虑类别等数据结构,那么使用核心数据会更好。特别是在搜索方面。
答案 3 :(得分:0)
似乎没有人提到SQLite,我会这样做,并且由于我在这里解释的原因(https://stackoverflow.com/a/12619813/1104563)。希望这有帮助!
答案 4 :(得分:0)
我认为你可以做到这一点的最佳方式,因为你是IOS的新手是使用sqlite。将所需的所有信息保存在本地数据库中并将其显示在屏幕上。
如果数据结构很小,可以使用plist。
Note that property lists should be used for data that consists primarily
of strings and numbers. They are very inefficient when used with large blocks
of binary data. A property list is probably the easiest to maintain, but it will be loaded into memory all at once. This could eat up a lot of the device's memory.
With Sqlite you will easily be able delete , edit, insert your data into the database.
Core data also uses sqlite for data storage only it helps you to manage your data objects, their relationships and dependencies with minimal code.
因为你刚开始使用核心数据并不是一个好主意我认为..所以我建议从正常的sqlite开始。将数据保存在应用程序的一个文件夹中,并将其路径存储在数据库中。
你不必写不同的帖子。如果你正在使用,你可以使用同一个。
编辑:这是一个可以帮助您学习sqlite的链接
答案 5 :(得分:-2)
coredata是一个苹果提供的持久工具,而plist是XML文件。我认为,不建议初学者使用核心数据的原因是从编程角度看核心数据比plist更难。对于您的应用,显然核心数据更合适。但另外,您也可以使用归档文件,即核心数据和plist之间的文件。