9

コアデータ内の特定のスキーマ(管理対象オブジェクトモデル)の既存のエンティティ(テーブル)のリストを取得する方法。私はコアデータの概念を実装し始めたばかりで、これらの点に固執しました。

何かのようなもの:

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

ありがとう

4

2 に答える 2

9

Appleのコアデータプログラミングガイドをお読みください。特定ののエンティティを取得するには、次のいずれかを使用します(これは、名前が付けられNSManagedObjectModelていることを前提としています)。NSManagedObjectModelobjectModel

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にアプローチし、データベースの使い方を初めて学んでいるかのように扱うことが重要だと思います。これにより、フラストレーションを回避できます。

于 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 に答える