我需要在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:'
如何修复这两个错误?
答案 0 :(得分:3)
此方法:
NSString *path = [[NSBundle mainBundle] pathForResource:@"Credits" ofType:@"rtf"];
返回您的文件所在的路径。
如果在获得路径后想要读取文件,请使用:
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
在此处查找文档:
此外,NSMutableAttributedString中没有名为InitWithRTF的方法。
答案 1 :(得分:0)
[[NSBundle mainBundle] pathForResource:
返回NSString
类型,请参阅NSBundle Class Reference,因此您无法直接为NSString
分配NSData,因此您可以使用不同的初始化程序将返回的URL传递给NSData。
并且NSAttributedString
没有名为initWithRTF
的init方法。这就是您看到错误的原因。