如何获取核心数据中特定模式(托管对象模型)的现有实体(表)列表。我刚刚开始实施核心数据概念并坚持这些观点。
就像是:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';
谢谢
您应该通读Apple 的核心数据编程指南。要获取特定 的实体NSManagedObjectModel
,您可以使用以下方法之一(假设您有一个NSManagedObjectModel
命名的objectModel
):
NSArray *myEntities = [objectModel entities];
// Array of all entities in the model
或者
NSDictionary *myEntities = [objectModel entitiesByName];
// Dictionary of entities in the model, with the entity names as keys
您可以在NSManagedObjectModel 类参考中阅读更多内容。
看来您来自 SQL 背景(就像我一样)。Core Data 中有许多不同的概念 - 有时会更好,一旦你理解它们,有时需要比你可能习惯的简单 SQL 语句更多的工作。我认为在没有 SQL“包袱”的情况下使用 Core Data 并将其视为第一次学习如何使用数据库是很重要的——这将有助于避免挫败感。
在 Swift 中,它将是:
let model: NSManagedObjectModel
let entities: [NSEntityDescription] = model.entities
// or
let entitiesByName: [String: NSEntityDescription] = model.entitiesByName
并获取名称列表
let enititesNames: [String] = entities.compactMap(\.name)