0


1

バイナリデータ(rtf)を文字列に読み込む

私はしばらくの間、コアデータプログラムに取り組んでいます。 PDFに保存して印刷するために、テキストビューでエンティティの属性を結合しようとしています。 エンティティの属性の1つはバイナリデータを使用します。

これを実行すると:

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

…​it returns this:

  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];
  1. myDataTryはnilです。 私はrtf形式について少し読んでから これを削除しました:

typedstreamè@
NSMutableDataNSDataNSObjecti[276c]

…​from the myData data but still get a nil result. Does anyone have any 私が間違っていることを考えていますか?

更新:最初の答えを考えた後、私はこれを試しました(およびいくつかの順列):

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

割り当てられた文字列だけでなく、まだ結果はありません。

以下は、私が引き出そうとしているエンティティの結果です。

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

})

1 Answer


0


NSAttributedStringインスタンスのような実際のオブジェクトをCore Dataに保存する場合は、データだけでなく、変換可能な型として保存する必要があります。 これにより、実際のインスタンスを「フリーズドライ」し、その後の処理を必要とせずにそのまま元に戻すことができます。