iOS 9中用于NSAttributedString initWithFileURL的替代方法

3

我刚刚发现iOS 9中NSAttributedStringinitWithFileURL已经被弃用,而且我没有找到一个合适的替代方法。

也许可以使用initWithData?但是当我从一个rtf文件中加载文本时,我该如何调整代码呢?

_text = [[NSAttributedString alloc] initWithFileURL:fileURL 
                                            options:nil
                                 documentAttributes:nil
                                              error:&error];

编辑:

我现在正在做的是:

- (void)loadText
{
  NSURL *fileURL = [[NSBundle mainBundle] URLForResource:self.rtfFile withExtension:nil];
  NSData *data = [[NSFileManager defaultManager] contentsAtPath:[fileURL path]];

  NSError *error = nil;

_text = [[NSAttributedString alloc] initWithData:data
                                          options:@{NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType}
                               documentAttributes:nil
                                            error:&error];

}

但是_text得到了nil。我检查了data,它不是nil。

2个回答

1
这是在iOS 9中可用的函数,用于从NSURL初始化NSAttributed字符串。
- (instancetype)initWithURL:(NSURL *)url
                options:(NSDictionary<NSString *,
                                 id> *)options
     documentAttributes:(NSDictionary<NSString *,
                                 id> * _Nullable *)docAttributes
                  error:(NSError * _Nullable *)error

这是苹果文档的链接


好的,我看错了苹果文档页面。谢谢。 - WedgeSparda

0

首先将您的URLFile转换为NSData

NSData *data =  [NSData dataWithContentsOfURL:URLFILE]; 

然后使用NSAttributedString的这种方法

initWithData:options:documentAttributes:error: 

也许这个解决方案可以帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接