【问题标题】:unrecognized selector sent to instance (DTCoreText+UILabel)无法识别的选择器发送到实例(DTCoreText+UILabel)
【发布时间】:2015-07-20 20:48:38
【问题描述】:

我得到错误:

-[__NSCFType lineBreakMode]: unrecognized selector sent to instance

当以下代码执行完毕时:

 NSDictionary* options = @{ NSTextSizeMultiplierDocumentOption: [NSNumber numberWithFloat: 1.0],
                                                            DTDefaultFontFamily: @"Helvetica Neue",
                                                            };
 NSAttributedString *attrStr = [[NSAttributedString alloc] initWithHTMLData:[@"HTML TEXT HERE" dataUsingEncoding:NSUTF8StringEncoding] options:options documentAttributes:NULL];
 attrStr = [attrStr copy];

 UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
 lbl.attributedText = attrStr;

 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"MOTD"
                                                 message:@""
                                                delegate:nil
                                       cancelButtonTitle:@"OK"
                                       otherButtonTitles:nil];
 [alert setValue:lbl forKey:@"accessoryView"];
 [self Load_list_Data];
 [alert show];

我的项目面向 iOS 8+。

有什么想法吗?

【问题讨论】:

  • 如果你的目标是 iOS 8,为什么你使用 DTCoreText 而不是系统提供的- [NSAttributedString initWithData:options:documentAttributes:error:] 来解析 HTML?
  • 速度,DTCoreText 库要快几个数量级。使用它在可以包含 1000 条记录的表中呈现一些 HTML。(我只呈现可见的内容,并且使用系统提供的功能仍然很慢)

标签: ios objective-c dtcoretext


【解决方案1】:

出于某种原因,即使我使用 iOS 8 强制 iOS 6 属性修复了该问题:

     NSDictionary* options = @{ NSTextSizeMultiplierDocumentOption: [NSNumber numberWithFloat: 1.0],
                                DTDefaultFontFamily: @"Helvetica Neue",DTUseiOS6Attributes: [NSNumber numberWithBool:YES],
                                };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2012-07-24
    相关资源
    最近更新 更多