0

我需要在 a 中显示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];
}

此代码给了我以下错误消息:

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

并且在

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

如何解决这两个错误?

4

2 回答 2

3

这种方法:

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

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

如果在获得路径后要读取文件,请使用以下命令:

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

在此处查找文档:

NSBundle 类参考

NSData 类参考

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

于 2013-10-07T09:33:55.857 回答
0

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

并且NSAttributedString没有一个名为initWithRTF. 这就是您看到错误的原因。

于 2013-10-07T09:38:04.110 回答