コアデータ内の特定のスキーマ(管理対象オブジェクトモデル)の既存のエンティティ(テーブル)のリストを取得する方法。私はコアデータの概念を実装し始めたばかりで、これらの点に固執しました。
何かのようなもの:
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の「手荷物」を使わずにCoreDataにアプローチし、データベースの使い方を初めて学んでいるかのように扱うことが重要だと思います。これにより、フラストレーションを回避できます。
Swiftでは次のようになります。
let model: NSManagedObjectModel
let entities: [NSEntityDescription] = model.entities
// or
let entitiesByName: [String: NSEntityDescription] = model.entitiesByName
と名前のリストを取得するには
let enititesNames: [String] = entities.compactMap(\.name)