Realm数据库读取数据时的处理:每次加载数据时,都将原有的数据删除,重新读取模型中的数据

来源:互联网 发布:des算法 java 编辑:程序博客网 时间:2024/06/06 09:53

Realm数据库读取数据时的处理:每次加在数据时,都将原有的数据删除,重新读取模型中的数据


/// 加载上方滚动广告

    func loadADData(){

        Alamofire.request(Router.chooseViewAdList(parameters:nil)).responseJSON { [unownedself] responsesin


            if responses.result.isFailure

            {

                WDAlert.alertSorry(message:"网络异常", inViewController:self)

                // 加载失败,使用旧数据

                return

            }

            

            

            let json = responses.result.value

            let result =JSON(json!)

            deleteAllADItem()

            addNewMainADItemInRealm(result["data"])

            // 加载成功,使用新数据

            self.adData =getADItemInRealm(self.realm)

            self.cycleView?.imageURLStringsGroup = self.realm.objects(MainADItem.self).map { item -> Stringin

                return item.path

            }

            

        }

    }




////////////////////////////////////////////////////////////////////////

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)

        })

    }

}


////////////////////////////////////////////////////


    // 广告数据

    fileprivatelazyvar adData:Results<MainADItem> = {

        returngetADItemInRealm(self.realm)

    }()


///////////////////////////////////////////////////////////////////


func getADItemInRealm(_ realm :Realm) ->Results<MainADItem>

{

    let items = realm.objects(MainADItem.self)

    return items

    

}


///////////////////////////////////////////////////////////////////

func deleteAllADItem()

{

    deleteAllObject(MainADItem.self)

}


// MARK: - 公用的方法


// 删除某一个对象的所有数据

func deleteAllObject(_ objectType:Object.Type)

{

    if let realm = try?Realm() {

        let items = realm.objects(objectType)

        

        try! realm.write({

            realm.delete(items)

        })

    }

}





0 0