Monreau 是一个用 Swift 编写的框架,它使您能够轻松地对您自己的缓存对象进行 CRUD 操作
功能
- 使用配置块创建
- 通过谓词查找
- 通过主键查找
- 查找所有
- 通过谓词更新
- 通过主键更新
- 更新所有
- 通过谓词删除
- 通过主键删除
- 删除所有
- 删除给定的对象
支持框架
- 支持 CoreData 的 CRUD 操作
- 支持 Realm 的 CRUD 操作
用法
CoreData 类
// MARK: - UserModelObject
/// Your NSManagedObject must be Storable
final class UserModelObject: NSManagedObject, Storable {
/// Primary key type
public typealias PrimaryType = Int64
/// User's identifier value (primary key)
@NSManaged public var id: Int64
/// User's name value
@NSManaged public var name: String
/// User's age value
@NSManaged public var age: Int16
}
Realm 类
// MARK: - UserModelObject
final class UserModelObject: Object, Storable {
/// Primary key type
public typealias PrimaryType = Int64
/// User's identifier value (primary key)
@objc dynamic public var id: Int64 = 0
/// User's name value
@objc dynamic public var name: String = ""
/// User's age value
@objc dynamic public var age: Int16 = 0
// MARK: - Object
@objc override public class func primaryKey() -> String? {
return primaryKey
}
}
存储实例
/// Create CoreData storage instance
let config = CoreStorageConfig(containerName: "Name of container also is filename for `*.xcdatamodeld` file.")
let storage = CoreStorage(with: config, model: UserModelObject.self)
/// Create Realm storage instance
let storage = RealmStorage<UserRealmObject>()
创建
try storage.create { user in
user.name = "name"
user.age = 20
user.id = 1
}
读取
try monreau.read(byPrimaryKey: id)
更新
/// Primary key updating
try monreau.persist(byPrimaryKey: id) { user in
/// Change found entity here
}
/// Predicate updating
try monreau.persist(byPredicate: "age > 5") { user in
/// Change found entity here
}
删除
try monreau.remove(byPrimaryKey: id)
try monreau.removeAll()
需求
- iOS 9.0+ / macOS 10.11+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 9.0
- Swift 5
通信
- 如果您找到 错误,请提交一个问题。
- 如果您有 功能请求,请提交一个问题。
- 如果您想 贡献,提交一个拉取请求。
安装
CocoaPods
CocoaPods是Cocoa项目的依赖管理器。您可以使用以下命令安装它
$ gem install cocoapods
要使用CocoaPods将Monreau集成到Xcode项目中,请在您的Podfile
中指定它
use_frameworks!
target "<Your Target Name>" do
pod "Monreau"
end
然后,运行以下命令
$ pod install
手动
如果您不想使用任何依赖管理器,您可以手动将Monreau集成到项目中。
嵌入式框架
-
打开终端,使用
cd
命令进入您的顶级项目目录,然后运行以下命令 "if" 您的项目尚未初始化为git仓库$ git init
-
通过运行以下命令将Monreau添加为git submodule
$ git submodule add https://github.com/incetro/Monreau.git
-
打开新的
Monreau
文件夹,并将Monreau.xcodeproj
拖入您的应用Xcode项目的项目导航器中。它应该嵌套在您的应用程序蓝色项目图标下面。它位于所有其他Xcode组之上或之下并不重要。
-
在项目导航器中选择
Monreau.xcodeproj
,并验证部署目标与您的应用程序目标相匹配。 -
接下来,在项目导航器中选择您的应用程序项目(蓝色项目图标),进入目标配置窗口,在侧边栏的“Targets”标题下选择应用程序目标。
-
在窗口顶部的标签栏中,打开“General”面板。
-
点击“嵌入式二进制”部分下的
+
按钮。 -
您将看到两个不同的
Monreau.xcodeproj
文件夹,每个文件夹都包含两个不同的Monreau.framework
,分别位于一个Products
文件夹内部。您选择哪个
Products
文件夹无关紧要,但选择顶部还是底部的Monreau.framework
则很重要。 -
选择顶部的
Monreau.framework
用于 iOS,底部的一个用于 OS X。您可以通过检查项目的构建日志来验证您选择了哪一个。对于
Monreau
的构建目标将列为Monreau iOS
、Monreau macOS
、Monreau tvOS
或Monreau watchOS
。 -
就这样!
自动将
Monreau.framework
添加为项目依赖项,链接框架和嵌入框架,在复制文件构建阶段中,所有这些您就可以在模拟器和设备上进行了。
作者
incetro, [email protected]
许可证
Monreau 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。