从实体条目读取rtf信息到NSString

时间:2010-11-25 18:15:11

标签: objective-c core-data rtf nsdata binary-data

我有一个实体(名为Song),其中一个属性是二进制数据(rtf字段),我用它来存储和弦图或有关歌曲的音符。我需要能够打印此字段以及此实体的其他字符串字段。我已经尝试了我能想到的每一种排列:

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

我成功地将`[object valueForKey:@“cueNotes”]解析为NSData并查看了rtf格式化数据,但是当我尝试initWithRTF时,我得到一个null结果。

以下是我从中提取此数据的实体的日志示例:

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 :(得分:0)

initWithRTF:是NSAttributedString的一种方法; NSString不会响应该选择器并返回nil,因此您只需更改类名即可解决此问题。

你的编译器必须在那里警告过你 - 我建议你不要忽略编译器警告,这样可以省去很多麻烦。

此外,nil只应该用于id - 因为对于文档属性不是这种情况,你应该在那里使用NULL。