CoreData.framework :iOS中提供了對原始SQLite數(shù)據(jù)庫API訪問的封裝哲泊,通過這個framework來管理數(shù)據(jù)緩存和持久數(shù)據(jù)要比使用SQL語句操作SQLite數(shù)據(jù)庫簡單和方便許多合砂。
機制:通過framework來存儲和查詢數(shù)據(jù)只需要使用framework提供的類就可以,你可以完全使用對象的形式來管理你的數(shù)據(jù)以及數(shù)據(jù)之間的關系,framework已經(jīng)很好地將數(shù)據(jù)庫表和字段封裝成了對象和屬性,表之間的一對多儒鹿、多對多關系則封裝成了對象之間的包含關系.
通過 relationship 來表示:
一對多時:設置為 properties 項選中 Optional, Plural 選項 To-Many Relationship 選中;
多對一反向關系時:properties 項選中 Optional,Count 項選中Minimun 和 Maximun 并分別設置其值為1几晤;
Core Data 特點:
1)Core Data的強大之處就在于這種關系可以在一個對象更新時挺身,其關聯(lián)的對象也會隨著更新,相當于你更新一張表的時候锌仅,其關聯(lián)的其他表也會隨著更新章钾。
2)Core Data的另外一個特點就是提供了更簡單的性能管理機制,例如热芹,使用NSFetchedResultsController類贱傀,你不用使用SQL的Limit而是使用NSFetchRequest類的setFetchBatchSize()就可以限制查詢記錄的總數(shù),而NSFetchedResultsController類神奇的地方在于需要獲取更多記錄的時候伊脓,這個類會自動更新其緩存府寒。
3)對于多表查詢上相對來說,CoreData沒有 SQL 直觀报腔,但CoreData的功能還是可以完成相關操作的株搔。
但是對于類似外連接,左連接等操作纯蛾,在CoreData中就顯得無力纤房。