UITextView / NSAttributedString: iOS Bug?



当我点击UITextView中的自定义链接时,出现以下崩溃错误。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString scheme]: unrecognized selector sent to instance 0x10e7aa098'

这就是我的代码的样子。

 NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString: @"20151230copy.png"];
 NSRange range = NSMakeRange(0, [attrString length]);
 [attrString beginEditing];
 [attrString addAttribute:NSLinkAttributeName value:@"https://www.youtube.com/" range:range];
 [attrString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:range];
 [attrString addAttribute:
    NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:range];
   [attrString endEditing];
 self.textView.attributedText = attrString;

我看不出我做错了什么,我认为这可能是iOS的错误。如果我把20151230copy换成类似"得克萨斯"的东西,效果很好。这对我来说毫无意义。你自己试试这个,你就会明白我的意思。

我认为这里发生的是NSLinkAttributevalue应该是NSURL,而不是字符串常量。

请注意,在错误(... [__NSCFConstantString scheme] ...)中,它正试图将NSURL选择器发送到常量字符串。

苹果文档:NSLinkAttributeName此属性的值为NSURL对象(首选)或NSString对象。此属性的默认值为nil,表示没有链接。

在iOS 7.0及更高版本中可用。

最新更新