Ios 单击URL时UITextView崩溃
我的代码中有以下几行代码,用于向UITextView添加可单击的url。merchantwebsite是我的UITextViewIos 单击URL时UITextView崩溃,ios,objective-c,nsstring,uitextview,Ios,Objective C,Nsstring,Uitextview,我的代码中有以下几行代码,用于向UITextView添加可单击的url。merchantwebsite是我的UITextView self.merchantwebsite.attributedText = [[NSAttributedString alloc] initWithString:@"http://www.crossfit.com" attributes:@{NSLinkAttributeName: @"http://www.crossfit.com"}]; self.merchant
self.merchantwebsite.attributedText = [[NSAttributedString alloc] initWithString:@"http://www.crossfit.com" attributes:@{NSLinkAttributeName: @"http://www.crossfit.com"}];
self.merchantwebsite.userInteractionEnabled = YES;
当我单击UITextView时,应用程序会与日志一起崩溃
2014-03-19 16:13:43.051 BTLE[27103:60b] -[__NSCFConstantString scheme]: unrecognized selector sent to instance 0x1a4404
有人能告诉我我做错了什么吗
谢谢 告诉UITextView要显示的内容时,只需键入链接,然后在从.storyboard页面选择UITextView时,在右侧的设置中启用链接识别 您不需要任何代码,您只需要:
merchantwebsite.text = @"http://www.crossfit.com";
显然,您的代码期望URL为NSURL。但是,很简单,NSString不是NSURL。试着这样做:
self.tv.attributedText =
[[NSAttributedString alloc]
initWithString:@"http://www.crossfit.com"
attributes:
@{NSLinkAttributeName: [NSURL URLWithString:@"http://www.crossfit.com"]}];
按如下方式更改代码:
NSAttributedString *string = [[NSAttributedString alloc] initWithString:@"http://www.crossfit.com" attributes:@{NSLinkAttributeName: @"http://www.crossfit.com"}];
[self.merchantwebsite setAttributedText:string];
尝试在我们的项目中添加链接器标志-all_load和-ObjC(如果您不使用它们)。我使用属性文本的原因是使文本看起来像超链接。然后更改字体大小和颜色(可能添加下划线),使其看起来像链接。同意是
NSString
不是NSURL
。但是文档中说:此属性的值是and NSURL对象(首选)或NSString对象。
因此NSString
应该按预期工作。(如果我测试它,我无法用iOS 7.0和iOS 7.1模拟器的NSString
重现崩溃),这是正确的@Emmanuel,但崩溃是由OP没有显示给我们的其他代码引起的。这就是为什么我说“你显然有密码”。。。可能是他的文本视图的委托导致了崩溃。我知道这是一个老问题了,但似乎不管Apple说属性可以是字符串或NSURL,UITextViewDelegate方法需要NSURL,否则您将得到无法识别的选择器崩溃