2017-04-01 103 views
0

因此,我使用Realm數據庫,並且我的TableView每次都會返回新的一組數據。所以,第一次,我得到了3件物品。第二次是6項等TableView每次運行應用程序時都會返回重複項目

import UIKit 
import RealmSwift 


class TableViewController: UITableViewController { 

var ModelName = [String]() 
var Power = [String]() 



func addPanel() { 

    let realm = try! Realm() 
    let allPanels = realm.objects(Panel) 
    try! realm.write { 
     realm.add(Panel(model: "Hyundai", power: 260)) 
     realm.add(Panel(model: "Honda", power: 420)) 
     realm.add(Panel(model: "Siemens", power: 280)) 
    } 

    tableView.reloadData() 


    for i in allPanels { 
     ModelName.append(i.model) 
     Power.append("\(i.power)") 
    } 

} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    addPanel() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

// MARK: - Table view data source 

override func numberOfSections(in tableView: UITableView) -> Int { 
    // #warning Incomplete implementation, return the number of sections 
    return 1 
} 

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of rows 
    return ModelName.count //changed from 3 
} 


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell:TableViewCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TableViewCell 
    //connect NameLabel cell to the name of Model and PowerLabel cell to the power 

    cell.NameLabel.text = ModelName[indexPath.row] 
    cell.PowerLabel.text = Power [indexPath.row] 



    return cell 
} 

如果我限制我的行數爲3,應用程序的作品。

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of rows 
    return ModelName.count //changed from 3 
} 

我會很感激任何幫助。謝謝

回答

0

我相信這是因爲每當這個控制器加載時,你添加三個對象到領域。由於默認情況下,更新爲false,因此您每次都會向Realm添加三個新對象。如果將更新更改爲true,則應該使用對象的主鍵,並且每個視圖控制器負載「更新」這些對象。

public func add(_ object: Object, update: Bool = false) 
相關問題