在iOS 9中替换NSAttributedString initWithFileURL

时间:2015-09-23 09:00:47

标签: ios objective-c ios9

我发现iOS 9中不推荐使用来自 NSAttributedString initWithFileURL ,而且我没有看到正确替换它。

也许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没有问题。我检查了data并且不是零。

2 个答案:

答案 0 :(得分:1)

此功能在iOS 9中可用于从NSURL初始化NSAttribiuted String

- (instancetype)initWithURL:(NSURL *)url
                options:(NSDictionary<NSString *,
                                 id> *)options
     documentAttributes:(NSDictionary<NSString *,
                                 id> * _Nullable *)docAttributes
                  error:(NSError * _Nullable *)error

它是Apple文档的link

答案 1 :(得分:0)

首先将您的URLFile转换为NSData

NSData *data =  [NSData dataWithContentsOfURL:URLFILE]; 

然后使用NSAttributedString的这个方法

initWithData:options:documentAttributes:error: 

可能这个解决方案会对你有帮助。