UITextView / NSAttributedString:iOS Bug?

时间:2016-01-05 04:07:29

标签: ios objective-c debugging crash uitextview

当我点击我在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错误。如果我用“texas”之类的东西替换20151230copy,它可以正常工作。这对我来说毫无意义。 亲自尝试一下,你就会明白我的意思。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

适用于iOS 7.0及更高版本。