【问题标题】:How do I delete Realm ? I can not be deleted如何删除领域?我不能被删除
【发布时间】:2016-12-18 14:47:12
【问题描述】:
import UIKit
import RealmSwift
class ViewController: UIViewController , UITableViewDataSource , UITableViewDelegate {
    @IBOutlet weak var text1: UITextField!
    @IBOutlet weak var text2: UITextField!
    @IBOutlet weak var ttableview: UITableView!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return array1.count
    }
    func ttableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return array1.count
    }

    /////
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = ttableview.dequeueReusableCell(withIdentifier: "cell") as! Cell
            cell.lable1.text = array1[indexPath.row]
            cell.lable2.text = array2[indexPath.row]
           return cell
    }
    /////

    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {

            //this delet Realm
            let cat1 = array1[indexPath.row]
            let cat2 = array2[indexPath.row]
            let realm = try! Realm()
            try realm.write {
                realm.delete(cat1)
                realm.delete(cat2)
            }



            //this delete table view row  and array
            array1.remove(at: indexPath.row)
            array2.remove(at: indexPath.row)
            ttableview.deleteRows(at: [indexPath], with: .fade)
        }
    }

    var array1 = [String]()
    var array2 = [String]()
    ///////////////////

    //add 2 text filed in tableview
    @IBAction func Add(_ sender: Any) {
              addCat()
              array1.insert(text1.text!, at: 0)
              array2.insert(text2.text!, at: 0)
              self.ttableview.reloadData()
    }
    /////////////

    func  addCat(){
        let realm = try! Realm()
        let  mike = CCat()
        mike.name = (text1.text!)
        mike.job  = (text2.text!)
        try! realm.write {
            realm.add(mike)
            //print(" \(mike.name) and \(mike.job)")
        }
    }
    ////////////////
    func queryPeople(){
        let realm = try! Realm()
        let allPeople = realm.objects(CCat.self)
        // var byname = allPeople.sorted(byProperty: "name", ascending: false)
        for person in allPeople {
            array1.insert(person.name, at: 0)
            array2.insert(person.job, at: 0)
            print("\(person.name) to \(person.job)")
            ttableview.reloadData()
        }
    }
     ///////////////////
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        ttableview.delegate = self
        ttableview.dataSource = self

       // addCat()
        queryPeople()
    }

【问题讨论】:

  • 解决您的问题(代码示例)并添加有关您所做工作的信息。
  • 考虑阅读官方文档,它可能回答了你的问题realm.io/docs/swift/latest

标签: ios swift3 realm


【解决方案1】:

您存储在 Realm 中的对象来自 CCat 类(希望继承自 Object),因此您可以将它们写入(add)到 Realm 数据库中。

但正如 Xcode 所说,您正试图从领域中删除 String。这是不可能的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多