CoreData實踐(五)——修改資料
我在前面兩篇部落格實現瞭如何插入資料,和如何查詢資料,現在在前面的基礎上,要實現更新資料。
(1)UsersTableViewController中的實現如下:
import UIKit
import CoreData
class UsersTableViewController: UITableViewController {
var dataArr:Array<AnyObject>! = []
var context:NSManagedObjectContext!
override func viewDidLoad() {
super.viewDidLoad()
context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
refreshData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return dataArr.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
var name = dataArr[indexPath.row].valueForKey("name") as! String
var age = dataArr[indexPath.row].valueForKey("age") as! Int
var label = cell.viewWithTag(101) as! UILabel
label.text = "姓名:\(name); 年齡:\(age)"
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var data = dataArr[indexPath.row] as! NSManagedObject
var vc = storyboard?.instantiateViewControllerWithIdentifier("UserContent") as! UserContentViewController
vc.data = data
presentViewController(vc, animated: true, completion: nil)
}
func refreshData(){
var f = NSFetchRequest(entityName: "Users")
dataArr = context.executeFetchRequest(f, error: nil)
tableView.reloadData()
}
override func viewWillAppear(animated: Bool) {
refreshData()
}
}
(2)然後在UserContentViewController中的實現如下:
import UIKit
import CoreData
class UserContentViewController: UIViewController {
var data:NSManagedObject!
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var ageTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
nameTextField.text = data.valueForKey("name") as! String
var age: AnyObject? = data.valueForKey("age")
ageTextField.text = "\(age!)"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func submitButton(sender: UIButton) {
data.setValue(nameTextField.text, forKey: "name")
data.setValue(ageTextField.text.toInt(), forKey: "age")
data.managedObjectContext?.save(nil)
dismissViewControllerAnimated(true, completion: nil)
}
@IBAction func cancelButton(sender: UIButton) {
dismissViewControllerAnimated(true, completion: nil)
}
}
(3)其中UserContentViewController對應的佈局如圖所示:
。
(4)最後執行程式,能夠通過在輸入框中修改姓名和年齡,來修改資料庫中的值。
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- CoreData實踐(四)——查詢資料
- CoreData實踐(六)——資料刪除
- CoreData實踐(二)——設計資料結構資料結構
- CoreData實踐(一)
- CoreData實踐(三)——插入資料並使用SQLite Professional檢視SQLite
- Swift實踐:使用CoreData儲存多種資料類的通訊錄Swift
- 資料儲存:CoreData
- Oc 資料庫CoreData資料庫
- 大資料專案實踐(五)——Hue安裝大資料
- iOS資料持久化儲存-CoreDataiOS持久化
- 資料探勘實踐(金融風控)-第五次任務
- ios Coredata 關聯 UITableView 資料自動更新iOSUIView
- 資料庫實踐資料庫
- IOS資料儲存之CoreData使用優缺點iOS
- 密碼修改最佳實踐密碼
- 批量修改檔名實踐
- BouncyCastle JCE實踐(五) (轉)AST
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- Mysql資料實時同步實踐MySql
- iOS CoreDataiOS
- 美團配送資料治理實踐
- DM資料庫操作實踐資料庫
- 資料視覺化實踐視覺化
- kafka資料遷移實踐Kafka
- 向量資料庫落地實踐資料庫
- 資料庫實驗五:資料庫程式設計資料庫程式設計
- 資料治理之後設資料管理實踐
- 資料庫修改資料資料庫
- dbms_ldap實現ldap資料修改LDA
- iOS CoreData (1)iOS
- CoreData總結
- 資料庫實驗五 資料庫的安全性資料庫
- PHP最佳實踐之資料庫PHP資料庫
- 大資料Storm 之RCE實踐大資料ORM
- MySQL匯入百萬資料實踐MySql
- Nebula Importer 資料匯入實踐Import
- 騰訊資料治理技術實踐
- 資料庫之鎖的實踐資料庫