模型中RealmSwift与SwiftJSON的结合
来源:互联网 发布:淘宝店铺过户流程 编辑:程序博客网 时间:2024/06/14 11:15
import UIKit
import RealmSwift
import SwiftyJSON
//let realmQueue = DispatchQueue(label: "com.wangju.WDDayDayCook", attributes: dispatch_queue_attr_make_with_qos_class(DispatchQueue.Attributes(), DispatchQoS.QoSClass.utility, 0))
// :MARK: - 广告数据的处理
/// 广告模型
class MainADItem: Object
{
dynamicvar createDate:TimeInterval = Date().timeIntervalSince1970
dynamicvar id :Int =0
dynamicvar modifyDate:TimeInterval = Date().timeIntervalSince1970
dynamicvar path :String =""
dynamicvar title :String =""
dynamicvar type: Int =0
dynamicvar url :String =""
}
func deleteAllADItem()
{
deleteAllObject(MainADItem.self)
}
func addNewMainADItemInRealm(_ json :JSON)
{
let jsonArr = json.arrayValue
guardlet realm = try?Realm() else
{
return
}
for itemin jsonArr {
let model =MainADItem()
model.url = item["url"].stringValue
model.type = item["type"].intValue
model.title = item["title"].stringValue
model.path = item["path"].stringValue
model.id = item["id"].intValue
model.createDate = item["createDate"].doubleValue
model.modifyDate = item["modifyDate"].doubleValue
try! realm.write({
realm.add(model)
})
}
}
func getADItemInRealm(_ realm :Realm) -> Results<MainADItem>
{
let items = realm.objects(MainADItem.self)
return items
}
// :MARK: - 每日新品数据的处理
/// 每日新品模型
class NewFood: Object {
dynamicvar detailsUrl: String =""
dynamicvar clickCount: Int =0
dynamicvar id: Int =0
dynamicvar categoryID:Int =0
dynamicvar foodDescription: String = ""
dynamicvar releaseDate: String = ""
dynamicvar type: String =""
dynamicvar screeningId:String =""
dynamicvar indexUrl:String =""
dynamicvar maketime:String =""
dynamicvar name: String =""
dynamicvar shareCount: Int =0
dynamicvar favorite: Bool =false
dynamicvar imageUrl: String =""
dynamicvar title: String =""
dynamicvar createDate:TimeInterval = Date().timeIntervalSince1970
dynamicvar modifyDate:TimeInterval = Date().timeIntervalSince1970
}
func addNewFoodItemInRealm(_ json :JSON)
{
let jsonArr = json.arrayValue
guardlet realm = try?Realm() else
{
return
}
for itemin jsonArr {
let model =NewFood()
model.detailsUrl = item["detailsUrl"].stringValue
model.clickCount = item["clickCount"].intValue
model.id = item["id"].intValue
model.foodDescription = item["description"].stringValue
model.releaseDate = item["releaseDate"].stringValue
model.type = item["type"].stringValue
model.screeningId = item["screeningId"].stringValue
model.indexUrl = item["indexUrl"].stringValue
model.maketime = item["maketime"].stringValue
model.name = item["name"].stringValue
model.shareCount = item["detailsUrl"].intValue
model.favorite = item["detailsUrl"].boolValue
model.imageUrl = item["imageUrl"].stringValue
model.title = item["title"].stringValue
model.createDate = item["createDate"].doubleValue
model.modifyDate = item["modifyDate"].doubleValue
try! realm.write({
realm.add(model)
})
}
}
func getNewFoodItemInRealm(_ realm :Realm) -> Results<NewFood>
{
let items = realm.objects(NewFood.self)
return items
}
class FoodRecmmand: Object
{
dynamicvar foodDescription: String = ""
dynamicvar favorite: Bool =false
dynamicvar recipe_type: String = ""
dynamicvar click_count :Int =0
dynamicvar favorite_count: Int = 2
dynamicvar image_url: String =""
dynamicvar rid: String =""
dynamicvar title: String =""
dynamicvar recommend_type: Int = 0
dynamicvar recipe_id: Int =0
dynamicvar group_id: Int =-2
dynamicvar share_count: Int = 0
dynamicvar str_date:TimeInterval = Date().timeIntervalSince1970
}
func addFoodRecmmandItemInRealm(_ json :JSON)
{
let jsonArr = json.arrayValue
guardlet realm = try?Realm() else
{
return
}
jsonArr.forEach { itemin
let model =FoodRecmmand()
model.foodDescription = item["description"].stringValue
model.favorite = item["favorite"].boolValue
model.recipe_type = item["recipe_type"].stringValue
model.click_count = item["click_count"].intValue
model.favorite_count = item["favorite_count"].intValue
model.rid = item["rid"].stringValue
model.title = item["title"].stringValue
model.recommend_type = item["recommend_type"].intValue
model.recipe_id = item["recipe_id"].intValue
model.group_id = item["group_id"].intValue
model.share_count = item["share_count"].intValue
model.str_date = item["str_date"].doubleValue
model.image_url = item["image_url"].stringValue
try! realm.write({
realm.add(model)
})
}
}
func getFoodRecmmandListInRealm(_ realm :Realm) -> Results<FoodRecmmand>
{
let items = realm.objects(FoodRecmmand.self)
return items
}
func getRecmmandListInRealm(_ realm :Realm,recommendType:Int) ->Results<FoodRecmmand>
{
let items =getFoodRecmmandListInRealm(realm)
let predicate =NSPredicate(format:"recommend_type = %d",recommendType)
return items.filter(predicate)
}
func getThemeListInRealm(_ realm :Realm) -> Results<FoodRecmmand>
{
returngetRecmmandListInRealm(realm, recommendType:2)
}
func getRecipeListInRealm(_ realm :Realm) -> Results<FoodRecmmand>
{
returngetRecmmandListInRealm(realm, recommendType:1)
}
func getRecipeDiscussListInRealm(_ realm :Realm) -> Results<FoodRecmmand>
{
returngetRecmmandListInRealm(realm, recommendType:3)
}
// MARK: - 公用的方法
// 删除某一个对象的所有数据
func deleteAllObject(_ objectType:Object.Type)
{
if let realm = try?Realm() {
let items = realm.objects(objectType)
try! realm.write({
realm.delete(items)
})
}
}
// 获取某一个模型的数据
func getObjectItemsInRealm(_ objectType:Object.Type,realm : Realm) -> Results<Object>
{
let items = realm.objects(objectType)
return items
}
- 模型中RealmSwift与SwiftJSON的结合
- lecture10-模型的结合与全贝叶斯学习
- Uniflow V3.5系统与应用结合的模型
- SwiftJson学习
- 搭建一套简单的结合Spring、SpringMVC与mybatis架构的模型
- 怎么实现ZBrush与数位板雕刻模型的结合运用
- caffe初探3:结合数据集与设计的网络模型进行训练
- 利用 MSYS2 及osgEarth 构建三维地球模型(2) osgEarth 与 Qt的结合
- 结合因式分解(SVD++)与近邻模型的混合协同过滤推荐系统
- *与++的结合
- 标准权限模型RBAC与实际日常开发工作结合后,我对RBAC模型的改进优化研究成果分享
- 标准权限模型RBAC与实际日常开发工作结合后,我对RBAC模型的改进优化研究成果分享
- dojo框架中ajax与struts的完美结合
- 页面设计中常见与Raptier结合的方法
- datagrid与DataSet结合使用中出现的索引问题
- datagrid与DataSet结合使用中出现的索引问题
- struts2中radio的默认选中与后台程序结合选中
- C#中xml与数据库dataset的结合
- main——QCamera
- MainWindow.h
- 使用Xamarin+Visual Studio搭建Android开发环境
- js 全选、反选、批删
- MainWindow.cpp
- 模型中RealmSwift与SwiftJSON的结合
- JDK动态动态代理和cglib动态代理的实现
- C++ Primer笔记(一)
- 深刻理解Python中的元类(metaclass)
- redis3.0.7源码阅读(五)redis字典
- C++实现插入排序
- 操作系统总结(六)进程同步
- 61. Rotate List**
- 【小惊喜】——GitHub初相识