转换为NSMutableattributed字符串时,Bad Access崩溃

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

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

但我的应用程序给访问不好我得到一个错误,

[NSHTMLWebDelegate retain]:发送到释放实例0x7fa9fe027130的消息


[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)} documentAttributes:nil error:nil];

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


如果你正在发布strPlainText并且在你的项目中使用ARC,那么不需要为strPlainText编写发布


使用这将解决您的问题,我认为:(如果它是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;

链接地址: http://www.djcxy.com/p/86877.html

上一篇: Bad Access crash while converting to NSMutableattributed string

下一篇: 'This' scope in TypeScript