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

时间:2010-12-15 04:00:25

标签: objective-c rtf binary-data

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

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

当我通过debuger运行时,myDataTry的摘要读取“超出范围”直到下一个换行符,然后myDataTry读取为nil。

我需要做些什么来改变这一点?

2 个答案:

答案 0 :(得分:1)

initWithRTF:documentAttributes:的引用读取:

  

返回初始化对象,如果无法解码rtfData,则返回nil。

您绝对确定您的RTF数据可以解码吗?

答案 1 :(得分:1)

这是有效的:

NSString *aStr = [[NSString alloc] initWithData:myData encoding:NSASCIIStringEncoding];
        NSRange r = [aStr rangeOfString:@"{"];
        NSString *newAStr = [aStr substringFromIndex:r.location];
        NSData *newMyData;
        newMyData = [newAStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:1];
        NSAttributedString* myDataTry = [[[NSAttributedString alloc] initWithRTF:newMyData documentAttributes:NULL]autorelease];

现在用其他所有内容将其插入窗口!感谢您对正确方向的看法@ShaggyFrog