2012-06-14 38 views
0

我正在研究一個iOS應用程序,它將處理核心數據數據存儲中每個約40-80k的許多文檔。爲了便於數據輸入,我組合了一個簡單的可可應用程序,將NSTextView控件的內容保存到商店中的可轉換字段。如何從iOS的核心數據可轉換字段中獲取RTF內容?

然後,我在我的iOS應用程序中打開保存的商店並遇到問題。當我嘗試使用UITextView控件訪問數據存儲中該字段的提取結果時,顯示的文本是十六進制轉儲。我猜測可可應用程序中的NSTextView正在將RTF文本保存到字段中,並且UITextView期望獲得純文本。

我現在正在爲iPad使用一個簡單的Master-Detail項目來嘗試獲取數據。下面是從數據存儲加載了數據的代碼:

self.detailDescriptionLabel.text = [[self.detailItem valueForKey:@"name"] description]; 
    self.detailTextView.text = [[self.detailItem valueForKey:@"text"] description]; 

當我運行的應用程序,並查看結果,這就是我得到的detailTextView的內容:

< 7b5c7274 66315c61 6e73695c 616e7369 63706731 3235325c 636f636f 61727466 31313338 5c636f63 6f617375 62727466 3437300a 7b5c666f 6e747462 6c5c6630 5c667377 6973735c 66636861 72736574 30204865 6c766574 6963613b 7d0a7b5c 636f6c6f 7274626c 3b5c726​​5 64323535 5c677265 656e3235 355c626c 75653235 353b7d0a 5c706172 645c7478 3536305c 74783131 32305c74 78313638 305c7478 32323430 5c747832 3830305c 74783333 36305c74 78333932 305c7478 34343830 5c747835 3034305c 74783536 30305c74 78363136 305c7478 36373230 5c706172 6469726e 61747572 616c0a0a 5c66305c 66733234 205c6366 30205468 69732069 73207468 6520776f 726b696e 6720636f 70792e7d>

我使用NSAttributedString獲取數據試過,但initWithRTFD:documentAttributes:方法不似乎在iOS中可用。

我誠實地不關心它是RTF。我只想讓文本退出。

+0

嗯,這是RTF好嗎:'{\ RTF1 \ ANSI \ ansicpg1252 \ cocoartf1138 \ cocoasubrtf470 {\ fonttbl \ F0 \ fswiss \ fcharset0黑體;} {\ colortbl; \ red255 \ green255 \ blue255;} \ PARD \ tx560 \ tx1120 \ tx1680 \ tx2240 \ tx2800 \ tx3360 \ tx3920 \ tx4480 \ tx5040 \ tx5600 \ tx6160 \ tx6720 \ pardirnatural \ f0 \ fs24 \ cf0這是工作副本}' – nielsbot

回答

1

您不想使用description方法;這會將作爲text密鑰返回的NSData轉換爲您在十六進制轉儲中看到的形式。 (如果你想將實際的內容作爲一個字符串,你可以使用類似[NSString initWithData:encoding:]的東西來獲取數據返回到一個字符串。)

但你可能不想轉換爲字符串,因爲我不認爲UITextView可以顯示RTF數據。 (至少不在iOS 5中)。相反,您至少可以通過將原始NSData傳遞給- [UIWebView loadData:MIMEType:textEncodingName:baseURL:]來查看UIWebView中的數據。

+0

我知道我不想使用'description' - 當我在嘗試使用'NSAttributedString'之前,我發現'description'總是會返回一個字符串。對不起,在代碼示例中留下了它。我已經嘗試了你對這行的建議:'[self.detailWebView loadData:[self.detailItem valueForKey:@「text」] MIMEType:@「application/rtf」textEncodingName:@「utf-8」baseURL:nil]; '但是沒有任何東西出現在UIWebView中。 – Uzziel

+0

聽起來像你需要指定一個基地網址。另外,我想你可能需要一個MIME類型的文本/ RTF。 http://stackoverflow.com/questions/7258502/rtf-equivalent-to-uiwebviews-loadhtmlstring –

+0

什麼是這種情況下適當的基本URL? – Uzziel