本文共 4686 字,大约阅读时间需要 15 分钟。
// core data select数据:do{ todos = try context.fetch(Todo.fetchRequest())}catch{ print(error)}// 删除context.delete(todos[indexPath.row])// 其他的操作,记得save 数据即可
# 执行下面命令$ cd ~/.cocoapods/repos $ pod repo remove master$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master#podfile 文件添加下面一行#source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
let user = User() user.name = "Fido" user.age = 15 do { let realm = try Realm() try realm.write { realm.add(user) } }catch{ print(error) } // 输出默认数据库文件源,it can use realm studio to look the database print(Realm.Configuration.defaultConfiguration.fileURL)
// user realm create object:class Todo: Object { @objc dynamic var name = " " @objc dynamic var isChecked = false}//create realm object and use try! if you confirm will oklet realm = try! Realm()// add new data to realm database do { try realm.write { realm.add(todo) } } catch { print(error) }
// realm 取数据: todos = realm.objects(Todo.self)// change todo datatypevar todos:Results?//sava data , reload views let todo = Todo() todo.name = name// todos.append(todo) saveData(todo: todo)//存储新增数据,模型里面的数据也增加了 tableView.reloadData() //重新执行渲染table方法,call tableview cell ForRowAt 方法
// 修改数据,重新渲染加载数据: do { try realm.write { todos![editRow!].name = name } } catch { print(error) } tableView.reloadData()// table 点击函数中: override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { if !isEditing{ if let todos = todos // change data all model and database do { try realm.write { todos[indexPath.row].isChecked = !todos[indexPath.row].isChecked } } catch { print(error) } tableView.reloadData() //改变视图 tableView.deselectRow(at: indexPath, animated: true)// 取消点击 } } }
// delete data do { try realm.write { realm.delete(todos![indexPath.row]) } } catch { print(error) } // saveData() tableView.reloadData()
// search button click func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { // realm 取数据: todos = realm.objects(Todo.self) todos = todos?.filter("name CONTAINS %@", searchBar.text!) tableView.reloadData() }// search bar textDidChange func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { if searchBar.text!.isEmpty{ todos = realm.objects(Todo.self) tableView.reloadData() //在主线程中进行: DispatchQueue.main.async { searchBar.resignFirstResponder()//失去第一响应 } } }// 排序,by createTimetodos = realm.objects(Todo.self).sorted(byKeyPath: "createDate", ascending: false)
转载地址:http://wjywi.baihongyu.com/