2011-08-11 6 views
5

NSFetchRequestの結果タイプをNSDictinaryResultTypeに設定すると、ゼロオブジェクトが返されます。 setPropertiesToFetchとsetResultTypeを削除すると、すべてのオブジェクトが返されます。コアデータNSFetchRequest setResultType:NSDictionaryResultTypeが機能しない

アイデア?

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Alert" inManagedObjectContext:_managedObjectContext]; 
[request setEntity:entity]; 

NSDictionary *entityProperties = [entity propertiesByName]; 
[request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"test"]]]; 
[request setResultType:NSDictionaryResultType]; 

NSError *error; 
NSArray *result = [_managedObjectContext executeFetchRequest:request error:&error]; 

if (result == nil) { 
    NSLog(@"Error: %@", [error localizedDescription]); 
} 

答えて

10

新しいオブジェクトを挿入した後にmangedObjectContextを保存する必要がありました。私がそれをしたら、私が探していた結果が得られます。

+0

はい、これは本当の問題です。 NSDictionaryResultsTypeを使用する場合、管理対象オブジェクトコンテキストで保留中の変更の結果を取得することはできません。 – Aderstedt