生活随笔
收集整理的這篇文章主要介紹了
IOS之Swift的CoreData入门使用案例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
IOS之Swift的CoreData入門使用案例
CoreData和SQLite3類似,用來把數(shù)據(jù)存在磁盤上的。可以隨時讀寫。
創(chuàng)建項目鉤上
當APP退出的時候,數(shù)據(jù)消失。
使用CoreData,退出App,重啟或 退出App,點擊進去App,數(shù)據(jù)仍然顯示
核心代碼在這;
import UIKit
import CoreDataclass DJTableViewController: UITableViewController {var people
: [NSManagedObject] = []var names
: [String] = []@IBAction func test(_ sender
: Any) {debugPrint("asd1")let alert
= UIAlertController(title
: "New Name",message
: "Add a new name",preferredStyle
: .alert
)let saveAction
= UIAlertAction(title
: "Save",style
: .default) {[unowned self] action
inguard let textField
= alert
.textFields
?.first,let nameToSave
= textField
.text
else {return}save(name
: nameToSave
)self.tableView
.reloadData()}let cancelAction
= UIAlertAction(title
: "Cancel",style
: .default)alert
.addTextField()alert
.addAction(saveAction
)alert
.addAction(cancelAction
)present(alert
, animated
: true)}func save(name
: String) {guard let appDelegate
= UIApplication.shared
.delegate
as? AppDelegate else {return}let managedContext
= appDelegate
.persistentContainer
.viewContext
let entity
=NSEntityDescription.entity(forEntityName
: "Person",in: managedContext
)!let person
= NSManagedObject(entity
: entity
,insertInto
: managedContext
)person
.setValue(name
, forKeyPath
: "name")do {try managedContext
.save()people
.append(person
)} catch let error
as NSError {print("Could not save. \(error), \(error.userInfo)")}}override func viewDidLoad() {super.viewDidLoad()self.title
= "The List"}override func viewWillAppear(_ animated
: Bool) {super.viewWillAppear(animated
)guard let appDelegate
=UIApplication.shared
.delegate
as? AppDelegate else {return}let managedContext
=appDelegate
.persistentContainer
.viewContext
let fetchRequest
=NSFetchRequest<NSManagedObject>(entityName
: "Person")do {people
= try managedContext
.fetch(fetchRequest
)} catch let error
as NSError {print("Could not fetch. \(error), \(error.userInfo)")}}override func tableView(_ tableView
: UITableView, cellForRowAt indexPath
: IndexPath) -> UITableViewCell {let person
= people
[indexPath
.row
]let cell
= tableView
.dequeueReusableCell(withIdentifier
: "Cell",for: indexPath
)
cell
.textLabel
?.text
= person
.value(forKeyPath
: "name") as? Stringreturn cell
}override func numberOfSections(in tableView
: UITableView) -> Int {return 1}override func tableView(_ tableView
: UITableView, numberOfRowsInSection section
: Int) -> Int {
return self.people
.count}}
總結(jié)
以上是生活随笔為你收集整理的IOS之Swift的CoreData入门使用案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。