模型中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

}


0 0
原创粉丝点击