2012-03-24 1 views
2

私のiosアプリケーションにコアデータを使用していますが、エンティティテーブルからカラム全体を取得するにはどうすればよいでしょうか?たとえば、私はテーブルからプライマリキーを取得することに興味があります。コアデータエンティティからカラムを取得する方法

SQLでは、MYTABLEからSelect nameを実行するだけです。

答えて

7

私はあなたがそれをこの方法で行うことができると思う:

NSManagedObjectContext *context = [self managedObjectContext]; 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"--table--" inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:nil]; 

NSMutableArray *elementsFromColumn = [[NSMutableArray alloc] init]; 
for (NSManagedObject *fetchedObject in fetchedObjects) { 
    [elementsFromColumn addObject:[fetchedObject valueForKey:@"--column--"]]; 
} 

ですから、あなたのテーブルの特定の列からすべての要素を持っています。 欲しいものがありますか?

+0

これはうまくいきました。投稿していただきありがとうございます。今、私はこのうわさのオートコンプリート機能をどうやって行うのか分かりましたら、私は満足しています。 – user597608

+0

@ bs7 CoreDataは、executeFetchRequestを実行すると使用可能なすべての列をフェッチします。または、valueForKeyを呼び出すときにのみフェッチします。 – onmyway133

+0

私のために働いた..素晴らしい答え! – TharakaNirmana

1

NSFetchRequestのdocumentationをご覧ください。特定のプロパティのみを含むディクショナリを返すように要求することができます。これは取得するのとほぼ同じです。関心のある方法はsetResultType:setPropertiesToFetch:です。

関連する問題