Monreau 版本 2.1.4

Monreau 版本 2.1.4

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

incetro 维护。



 
依赖
RealmSwift>= 0
Realm>= 0
 

Monreau 版本 2.1.4

  • incetro

Placeholder

Build Status CocoaPods Carthage Compatible GitHub license Platforms

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 iOSMonreau macOSMonreau tvOSMonreau watchOS

  • 就这样!

    自动将 Monreau.framework 添加为项目依赖项,链接框架和嵌入框架,在复制文件构建阶段中,所有这些您就可以在模拟器和设备上进行了。

作者

incetro, [email protected]

许可证

Monreau 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。