чтение двоичных данных (rtf) в строку - PullRequest
0 голосов
/ 15 октября 2010

Я уже некоторое время работаю над основной программой данных.Я пытаюсь объединить атрибуты объекта в текстовом представлении для сохранения в PDF и печати.Один из атрибутов сущности использует двоичные данные.

Когда я выполняю это:

NSData *myData = [object valueForKey:@"cueNotes"];

... это возвращает:

  typedstreamè@
NSMutableDataNSDataNSObjecti[276c]{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
{\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural

\f0\fs20 \cf0 step one text}

, когда я пытаюсь это сделать:

NSAttributedString* myDataTry = [[[NSAttributedString alloc] initWithRTF:myData documentAttributes:nil] autorelease];

... myDataTry равен нулю.Я немного прочитал о формате rtf и затем удалил это:

typedstreamè@
NSMutableDataNSDataNSObjecti[276c]  

... из данных myData, но все равно получил нулевой результат.Кто-нибудь знает, что я делаю неправильно?

Обновление: Подумав о первом ответе, я попробовал это (а также пару перестановок):

NSString* notesString = [[[NSString alloc] initWithRTF:[object valueForKey:@"cueNotes"] documentAttributes:nil] autorelease];

, а такжевыделенная строка и до сих пор нет результатов.

Вот результаты сущности, из которой я извлекаю:

2010-10-30 00:47:32.867 lzshow7.2[4222:10b] <NSManagedObject: 0x2a4850> (entity: Song; id: 0x26a030 <x-coredata:///Song/t172F066B-285C-4125-B2FA-CFFA6A353D102> ; data: {
cueName = Stupid;
cueNo = 001;
cueNotes = <040b7479 70656473 74726561 6d8103e8 84014084 84840d4e 534d7574 61626c65 44617461 00848406 4e534461 74610084 8408>;
songToEffect =     (
);
songToInstrument =     (
);

})

1 Ответ

0 голосов
/ 16 октября 2010

Когда вы сохраняете фактический объект, такой как экземпляры NSAttributedString, в Core Data, вы должны сохранить его как преобразуемый тип, а не просто данные.Это позволит вам «заморозить» фактический экземпляр и затем вернуть его обратно без изменений без дальнейшей обработки.

...