2013-02-20 54 views
0

我面临奇怪的核心数据行为。核心数据错误与字符串符号寄存器

当我用SQLIte数据库查看器检查我的数据库时,我看到“STRING”值。但是当我读到这个值时,我得到了“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]; 

这怎么可能呢?阅读过程中数据如何转化?

+1

你的问题不是很清楚。你看到的是什么意外?你问什么问题? – 2013-02-20 18:39:33

+0

提供一些其他细节。谢谢。 – 2013-02-20 20:59:59

+0

我希望从数据库中读取“STRING”(所有大写字母)。如何从数据库中读取“字符串”。问题是为什么会发生?我可以提供哪些附加信息? – Vlad 2013-02-25 07:03:25

回答

0

其实我的应用程序是Osirix DICOM查看器插件。

幸运我得到的答案上Osirix发展集团会议

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

我使用valueForKey方法从NSArray的* dataArray中的阵列 但这里的正确方法得到的数据是primitiveValueForKey

与Osirix valueForKey工作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]; 

}