0

我遇到了奇怪的核心数据行为。

当我使用 SQLite 数据库查看器检查我的数据库时,我看到“字符串”值。但是当我读到这个值时,我得到“字符串”。

我使用的代码报告如下:

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 回答