NSManagedObjectModel是托管對象模型,标示着Core Data對應的資料實體。
托管對象模型包含一個或多個NSEntityDescription對象,NSEntityDescription記錄的就是實體的描述資訊。
1 Initializing a Model
// 通過指定的url位址生成模型
public convenience init?(contentsOf url: URL)
// 傳回合并所有在給定束中發現的模型建立的模型。
open class func mergedModel(from bundles: [Bundle]?) -> NSManagedObjectModel?
// 從指定的中繼資料傳回一個指定數組的合并模型,以提供版本資訊的合并模型。
@available(iOS 3.0, *)
open class func mergedModel(from bundles: [Bundle]?, forStoreMetadata metadata: [String : Any]) -> NSManagedObjectModel?
// 從現有的資料模型合并成一個資料模型
public /*not inherited*/ init?(byMerging models: [NSManagedObjectModel]?)
// 通過指定的版本資訊合并資料模型
@available(iOS 3.0, *)
public /*not inherited*/ init?(byMerging models: [NSManagedObjectModel], forStoreMetadata metadata: [String : Any])
2 Entities and Configurations
// 實體字典,key為實體名
open var entitiesByName: [String : NSEntityDescription] { get }
// 實體數組
open var entities: [NSEntityDescription]
// 可用的配置名稱
open var configurations: [String] { get }
// 通過配置名擷取實體
open func entities(forConfigurationName configuration: String?) -> [NSEntityDescription]?
// 将指定配置名和實體集合關聯
open func setEntities(_ entities: [NSEntityDescription], forConfigurationName configuration: String)
3 Getting Fetch Request Templates
// 擷取所有快速查詢模闆
@available(iOS , *)
open var fetchRequestTemplatesByName: [String : NSFetchRequest<NSFetchRequestResult>] { get }
// 設定查詢模闆
open func setFetchRequestTemplate(_ fetchRequestTemplate: NSFetchRequest<NSFetchRequestResult>?, forName name: String)
// 根據關鍵字擷取模闆
open func fetchRequestTemplate(forName name: String) -> NSFetchRequest<NSFetchRequestResult>?
// 根據關鍵字擷取,并可用字典替換
open func fetchRequestFromTemplate(withName name: String, substitutionVariables variables: [String : Any]) -> NSFetchRequest<NSFetchRequestResult>?
4 Localization
// 定位字典
open var localizationDictionary: [String : String]?
5 Versioning and Migration
// 開發人員定義的版本辨別符
@available(iOS , *)
open var versionIdentifiers: Set<AnyHashable>
// 判斷源是否相容,主要用于判斷是否需要做資料庫遷移
@available(iOS , *)
open func isConfiguration(withName configuration: String?, compatibleWithStoreMetadata metadata: [String : Any]) -> Bool
// 版本相容性相關資訊
@available(iOS , *)
open var entityVersionHashesByName: [String : Data] { get }
6 Initializers
// 初始化
public init()
Appendix
Related Documentation
NSManagedObjectModel
Revision History
時間 | 描述 |
---|---|
2016-10-22 | 博文完成 |
Copyright
CSDN:http://blog.csdn.net/y550918116j
GitHub:https://github.com/937447974