有些人已经包装了SQLite库或提供了替代方案。他们的相对优点是什么?
答案 0 :(得分:4)
是的,有点狡猾的回答。
直接或通过包装器使用SQLite有三个主要原因。
您正在跨平台共享数据库,无法使用Core Data的架构
您确实需要原始的SQLite性能,并且需要具备17级SQLite API精通才能真正实现超过SQLite的性能优势。
你知道SQLite的内部和外部,不喜欢学习新东西,并想重新发明数据库和屏幕之间的必要位。 (稍微有些讽刺)。
Core Data为您提供了大量功能,这些功能非常难以实现。也就是说,对象图管理具有完整的完整性和撤销支持。
答案 1 :(得分:3)
bbum给出了最简洁的答案,你应该仔细思考不要使用核心数据。
但我认为你也应该回答你的实际问题。
我知道基本上有两种包装方法:
FMDB使用一种方法,可以更轻松地为SQLLite使用Cocoa API覆盖。如果您熟悉SQL和数据库设计并且只是想要一个简单的数据库,这可能会很棒。
其他方法通常是更多的对象关系映射系统,它试图为您提供基础数据存储的对象视图,并隐藏您的一些查询。
在这两种情况下,如果你有一个非常简单的数据存储,如果你有特定的原因,它们就可以使用了......但是使用Core Data可以免费提供很多东西(虽然我承认学习曲线可以陡峭的。)
答案 2 :(得分:0)
还有第三种方法。第三种方法允许您通过一组Objective-C类构建SQLite语句。他们将处理您的数据转换和消毒方式。他们还将确保您的陈述正确构建。您可以尝试https://github.com/ziminji/objective-c-sql-query-builder此特定库还提供遵循Active Record设计模式的对象关系映射(ORM)。