2013-02-20 53 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]; 

}