9

如何获取核心数据中特定模式(托管对象模型)的现有实体(表)列表。我刚刚开始实施核心数据概念并坚持这些观点。

就像是:

SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';

谢谢

4

2 回答 2

9

您应该通读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 并将其视为第一次学习如何使用数据库是很重要的——这将有助于避免挫败感。

于 2013-03-27T12:39:01.903 回答
2

在 Swift 中,它将是:

let model: NSManagedObjectModel

let entities: [NSEntityDescription] = model.entities
// or
let entitiesByName: [String: NSEntityDescription] = model.entitiesByName

并获取名称列表

let enititesNames: [String] = entities.compactMap(\.name)
于 2021-09-01T14:49:35.707 回答