目录
#AACoreData
##描述
AACoreData 是一个轻量级的数据持久化封装,旨在通过使用 Swift 以简化的方式提供 CRUD
操作的解决方案,它使用 CoreData
。它提供了一个单例实例,可以用于在代码的任何地方访问 CoreData
对象,并使用 '值类型' 定义 CoreData
实体。
##演示
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
##要求
- iOS 8.0+ / Mac OS X 10.9+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 8.0+
安装
可以使用 CocoaPods、Carthage 或手动方式安装 AACoreData。
##CocoaPods
AACoreData 通过 CocoaPods 提供。要安装 CocoaPods,请运行
$ gem install cocoapods
然后创建一个包含以下内容的 Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target '<Your Target Name>' do
pod 'AACoreData', '~> 1.0'
end
最后,运行以下命令进行安装
$ pod install
##Carthage
要安装 Carthage,请运行(使用 Homebrew)
$ brew update
$ brew install carthage
然后向 Cartfile 添加以下行
github "EngrAhsanAli/AACoreData"
然后在上所有使用该库的文件中导入库
import AACoreData
##手动安装
只需将Classes/AACoreData.swift
复制到您的Xcode项目中即可!
入门指南
##定义实体
extension AACoreData {
static let myEntity = AACoreEntity("ExampleEntity")
}
##共享实例
您可以通过在特定类或类外全局位置添加以下行轻松访问实例
let instance = AACoreData.shared
##创建您自己的数据模型
您需要在项目中创建自己的数据模型文件。默认情况下,假设在项目包中找到"AACoreData.xcdatamodeld"
,如./YouAppName/AACoreData.xcdatamodeld
。如果您想创建不同名称的数据模型,则必须通过在AppDelegate.swift
中使用单例属性来指定它
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
AACoreData.shared.dataModel = "ExampleDataModel"
return true
}
##创建新的实体对象
let record = instance.getNewObject(entityName: .myEntity) as! ExampleEntity
##保存您的更改
instance.saveContext()
##获取记录
您可以通过参数 'predicate' 和 'sortDescriptors'(可选)轻松检索对象。
instance.fetchRecords(entityName: #ENTITY#, predicate: #PREDICATE#, sortDescriptors: #SORTDECRIPTORS#, completion: #COMPLETION BLOCK#)
您可以轻松检查对象是否存在或获取所需持久数据。
instance.fetchRecords(entityName: .myEntity, sortDescriptors: [sorter]) { (results) in
if let result = results {
// MARK:- Record(s) found
// You can fetch using loop
}
else {
// MARK:- No Record found
// You can insert new record to avoid redundancy
}
}
##删除对象
您可以使用共享实例轻松删除对象。
instance.deleteRecord(record)
提示:不要忘记使用
instance.saveContext()
更新持久数据后保存更改。
##删除所有对象
您可以使用共享实例轻松从实体中删除所有记录。
instance.deleteAllRecords(entity: .Example)
##贡献与许可证
AACoreData
采用MIT许可证。有关更多信息,请参阅许可证文件。
欢迎提交拉取请求!最佳的贡献将包括在典型应用程序生命周期中会阻塞主线程的已知类/方法的替换或配置。
如果您在应用程序中使用AACoreData
,请发送电子邮件至Eng. Ahsan Ali