0

Core Data の奇妙な動作に直面しました。

SQLIte Database Viewer でデータベースをチェックすると、"STRING" 値が表示されます。しかし、この値を読み取ると、「文字列」が得られます。

私が使用するコードは以下に報告されています:

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];

//which entity (or table) to select data   
[request setEntity: [[mdl entitiesByName] objectForKey:@"KeyName"]];

NSError *error = nil;
NSArray *dataArray = [cntx  executeFetchRequest:request error:&error];

どうしてですか?読み取り中にデータをどのように変換できますか?

4

1 に答える 1

0

実際、私のアプリケーションは Osirix DICOM ビューアー プラグインです。

幸いなことに、Osirix Development Group カンファレンスで回答を得ました。

http://tech.groups.yahoo.com/group/osirix-dev/message/3469

valueForKey メソッドを使用して NSArray *dataArray 配列からデータを取得しますが、ここでの適切なメソッドはprimitiveValueForKeyです

valueForKey は Osirix 4.x で動作 Osirix 5.x には、「患者の名前と説明を大文字で表示する」というプロパティがあります。このプロパティが ON の場合、valueForKey は機能しません。この場合は、primitiveValueForKey を使用する必要があります。

NSArray *dataArray = [cntx  executeFetchRequest:request error:&error];

for( i ...  )
{
 DicomStudy *study = [dataArray objectAtIndex: i];
 NSString *myValue = [study primitiveValueForKey:myKey];

}
于 2013-03-12T12:41:27.280 に答える