【问题标题】:Bad Access crash while converting to NSMutableattributed string转换为 NSMutableattributed 字符串时出现错误访问崩溃
【发布时间】:2015-12-30 18:06:34
【问题描述】:

在进行解析时,我使用下面的代码行将 HTML 字符串数据转换为属性字符串文本,

 obj.strPlainText=[[NSMutableAttributedString alloc] initWithData:[obj.strContent dataUsingEncoding:NSUTF8StringEncoding]      
                                                          options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
                                                               NSCharacterEncodingDocumentAttribute:@(NSUTF8StringEncoding)} 
                                               documentAttributes:nil 
                                                            error:nil];

但我的应用提供了错误的访问权限 我遇到了一个错误,

[NSHTMLWebDelegate 保留]:消息发送到解除分配的实例 0x7fa9fe027130

【问题讨论】:

  • 我也遇到了同样的问题 :(

标签: ios objective-c nsattributedstring


【解决方案1】:
[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)} documentAttributes:nil error:nil];

但如果您在 ios 8.1,2 或 3 上运行该应用程序会崩溃。 为避免崩溃,您可以做的是:在队列中运行它。所以它总是在主线程上。

【讨论】:

    【解决方案2】:

    如果您正在发布 strPlainText 并在您的项目中使用 ARC,则无需为 strPlainText 编写发布版

    【讨论】:

    • 我还没有为发布 strPlaintext 编写单行代码,我的项目是 ARC。
    【解决方案3】:

    我认为使用它可以解决您的问题:(如果是 7.0+)

    NSError* error;
    NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithData:[source dataUsingEncoding:NSUTF8StringEncoding]
                                         options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                                         NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
                                         documentAttributes:nil error:&error];
    

    您必须将 str 设置为您的 obj.strPlainText,例如 obj.attributedString = str;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多