错误消息NSData

时间:2013-10-07 09:28:38

标签: ios xcode nsdata rtf

我需要在RTF file中显示UITextView。我的代码如下所示:

我的.h文件:

@property (strong, nonatomic) IBOutlet UITextView *creditsTextView;

我的.m文件

@synthesize creditsTextView;

- (void)viewDidLoad {
    [super viewDidLoad];

    NSData *creditsData = [[NSBundle mainBundle] pathForResource:@"Credits" ofType:@"rtf"];

    NSAttributedString *attrString;
    NSDictionary *docAttributes;

    attrString = [[NSAttributedString alloc]
                  initWithRTF: creditsData documentAttributes: &docAttributes];
}

此代码为我提供了以下错误消息:

at

*creditsData : Incompatible pointer types 'NSData *' with expression of type 'NSString *'

initWithRTF : No visible @interface for 'NSAttributedString' declares the selector 'initWithRTF:documentAttributes:'

如何修复这两个错误?

2 个答案:

答案 0 :(得分:3)

此方法:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Credits" ofType:@"rtf"];

返回您的文件所在的路径。

如果在获得路径后想要读取文件,请使用:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];

在此处查找文档:

NSBundle Class Reference

NSData Class Reference

此外,NSMutableAttributedString中没有名为InitWithRTF的方法。

答案 1 :(得分:0)

[[NSBundle mainBundle] pathForResource:返回NSString类型,请参阅NSBundle Class Reference,因此您无法直接为NSString分配NSData,因此您可以使用不同的初始化程序将返回的URL传递给NSData。

并且NSAttributedString没有名为initWithRTF的init方法。这就是您看到错误的原因。