CoreData實踐(一)
在客戶端的開發中,我們可能要輕量級的儲存一些資料,此時最方便的想法就是使用SQLite。而在iOS平臺下,我們可以使用蘋果提供的CoreData框架。如何在專案中著手使用CoreData呢?
(1)建立一個iOS專案,同時勾選Use Core Data選項。
(2)此時可以發現在專案目錄中比之前多了一個檔案:如圖:
。
(3)來到AppDelegate.swift中,可以發現生成了大量關於CoreData的程式碼:
// MARK: - Core Data stack
lazy var applicationDocumentsDirectory: NSURL = {
// The directory the application uses to store the Core Data store file. This code uses a directory named "com.chenyufengweb.UsingData" in the application's documents Application Support directory.
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
return urls[urls.count-1] as! NSURL
}()
lazy var managedObjectModel: NSManagedObjectModel = {
// The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model.
let modelURL = NSBundle.mainBundle().URLForResource("UsingData", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
// The persistent store coordinator for the application. This implementation creates and return a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail.
// Create the coordinator and store
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("UsingData.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error: &error) == nil {
coordinator = nil
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error
error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
return coordinator
}()
lazy var managedObjectContext: NSManagedObjectContext? = {
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context to fail.
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext()
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
// MARK: - Core Data Saving support
func saveContext () {
if let moc = self.managedObjectContext {
var error: NSError? = nil
if moc.hasChanges && !moc.save(&error) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
}
}
(4)那如何在程式碼中能夠訪問到呢?在ViewController中程式碼如下:
var context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
此時就可以使用context來訪問CoreData的方法了。
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- CoreData實踐(五)——修改資料
- CoreData實踐(四)——查詢資料
- CoreData實踐(六)——資料刪除
- CoreData實踐(二)——設計資料結構資料結構
- CoreData:使用CoreData完成一個通訊錄儲存
- CoreData實踐(三)——插入資料並使用SQLite Professional檢視SQLite
- Swift實踐:使用CoreData儲存多種資料類的通訊錄Swift
- iOS CoreData (一) 增刪改查iOS
- iOS CoreDataiOS
- iOS CoreData (1)iOS
- CoreData總結
- SQL實踐一SQL
- 資料儲存:CoreData
- Oc 資料庫CoreData資料庫
- TDD 實踐-FizzFuzzWhizz(一)
- DHCP最佳實踐(一)
- 課程實踐(一)
- iOS CoreData排序之 NSFetchRequestiOS排序
- Pulsar部署和實踐(一)
- Go 語言實踐(一)Go
- 混沌演練實踐(一)
- AndroidStudio實踐一Android
- 課程實踐(一)續
- XtraBackup實踐(一)備份
- 一點點最佳實踐
- 【唯實踐】容器環境應用一鍵拉起實踐
- vue專案實踐004~~~一籃子的實踐技巧Vue
- CoreData - 簡單 增刪改查
- Oracle 統一審計- Best 實踐一Oracle
- 前端最佳實踐(一)——DOM操作前端
- Css in Js 一次實踐CSSJS
- angr原理與實踐(一)——原理
- Typescript 進階與實踐(一)TypeScript
- HTTP介面測試實踐(一)HTTP
- 元件化實踐詳解(一)元件化
- ELK技術棧實踐(一)
- React專案實踐系列一React
- 課程實踐(一)續1