DAO 1.6.1

DAO 1.6.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最新发布2021年4月
SPM支持 SPM

Aleksey Tyurnin 维护。



DAO 1.6.1

  • vani2 和 hoppus

Issues count Cocoapod Swift License

DAO

为 CoreData 和 Realm 实现了 DAO 模式。帮助您在应用程序中少考虑数据库。

特点

  • 使用您的持久层同步进行 CRUD 操作。
  • 从应用程序对象(实体)抽象数据库对象(条目)。
  • 从并发中抽象。

安装

Cocoapods

用于与 CoreData 一起使用

pod 'DAO/CoreData'

或与 Realm 一起

pod 'DAO/Realm'

Carthage

在 Cartfile 中添加以下条目

github "RedMadRobot/DAO"

然后运行 carthage update

最后,您需要手动设置 Xcode 项目的配置以添加框架

  1. 在目标的“常规”设置选项卡中,在“链接的框架和库”部分添加您想从 Carthage/Build 文件夹中使用的每个框架。

  2. 在目标的“构建阶段”设置选项卡中,单击“+”图标并选择“新建 Run Script 阶段”。创建一个具有以下内容的 Run Script

/usr/local/bin/carthage copy-frameworks
  1. 在“输入文件”下添加您想要使用的框架的路径

3.1. 用于与 CoreData 一起使用

$(SRCROOT)/Carthage/Build/iOS/CoreDataDAO.framework

3.2. 或与 Realm 一起

$(SRCROOT)/Carthage/Build/iOS/RealmDAO.framework
  1. 将复制的框架的路径添加到“输出文件”

4.1. 用于与 CoreData 一起使用

$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/CoreDataDAO.framework

4.2. 或与 Realm 一起

$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RealmDAO.framework

使用说明

// Create DAO instance
let dao = RealmDAO(RLMMessageTranslator())

//...

// Create message entity
let message = Message(entityId: "abc", text: "text")

// Save message to database
try? dao.persist(message)

// Read saved message from database
let savedMessage = dao.read(message.entityId)

// Delete message from database
try? dao.erase(message.entityId)

请参阅示例项目以获取更多信息。

不推荐使用的情况

  • 如果你有大型且复杂的数据库模式。很多实体,很多关系。
  • 如果你想使用数据库的特定功能。例如,Realm Mobile Platform与DAO实现不兼容。
  • 如果你有成千上万的对象(> 10-20K)。性能可能成问题。

要求

  • XCode 9
  • Swift 5
  • iOS 9

作者

Ivan Vavilov - [email protected]