专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构
保存网络数据到本地
新建
saveStatus函数,首先解决保存微博数据问题/** 将网络获取的微博数据保存到本地 parameter array: 网络返回的微博数据数组 */ func saveStatus(array: [[String: AnyObject]]) { }实现
saveStatus函数/** 将网络获取的微博数据保存到本地 parameter array: 网络返回的微博数据数组 */ func saveStatus(array: [[String: Any]]) { // 获取用户的ID guard let userId = HMUserAccountViewModel.shared.userAccount?.uid else { print("无法获取用户信息") return } // 确定sql语句 let sql = "INSERT INTO T_Status (statusId, status, userId) VALUES (?, ?, ?);" // 使用SQLiteManager添加到数据库 // 因为这里是添加多条记录,所以使用事务 HMSQLiteManager.shared.dbQueue.inTransaction { (db, rollback) -> Void in do { // 遍历微博字典数组 for dict in array { // 获取微博ID let statusId = dict["id"] as! NSNumber // 微博数据是一个字典.需要转成String再存入数据库 // 字典转String,使用JSON序列化成data,再转成String let json = try! JSONSerialization.data(withJSONObject: dict, options: []) let status = String(data: json, encoding: .utf8)! // 保存到数据库 try db!.executeUpdate(sql, values: [statusId, status, userId]) } print("保存了\(array.count)条数据到数据库") } catch let error { print("保存数据失败: \(error)") rollback?.pointee = true } } }- 在
HMStatusListViewModel.swif的loadStatus中测试// TODO: 测试保存数据到数据库 HMStatusDAL.shared.saveStatus(array: array)