gpt4 book ai didi

objective-c - Swift 2.3 Button to open URL failed with error unrecognized selector

转载 作者:行者123 更新时间:2023-11-28 06:24:04 26 4
gpt4 key购买 nike

我创建了一个按钮来打开 url 链接,但由于无法识别的选择器错误而失败。我通常会通过在线阅读的方式将添加目标设置为 self ,但对于这个特定实例,我收到错误:无法将 NSOBJECT ->() -> infoViewcontroller.infoview 类型的值转换为预期的参数类型 AnyObject。所以为了解决这个问题,Xcode 推荐的是将目标设置为 NSOBJECT.self。然而,这不再出错,但在单击按钮时崩溃并返回以下原因:[NSObject displayWebLink]:无法识别的选择器发送到类 0x106011e58。所以我只是想知道这样做的正确方法是什么,为什么?下面是我的代码。

 class ActivityInfoView: UICollectionViewCell {


var activity: ActivitysEvents? {

didSet {
}
}

override init(frame: CGRect) {
super.init(frame: frame)

setupViews()

}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

var textView: UITextView = {
let tv = UITextView()
tv.userInteractionEnabled = false
return tv
}()

let dividerLineView: UIView = {
let view = UIView()
view.backgroundColor = UIColor.lightGrayColor()
return view

}()

let urlLinkButton: UIButton = {
let button = UIButton()
button.backgroundColor = UIColor.redColor()
button.titleLabel?.font = UIFont.systemFontOfSize(14)
button.setTitleColor(UIColor.blueColor(), forState: .Normal)
// button.addTarget(self, action: #selector(displayWebLink), forControlEvents: .TouchUpInside)
button.addTarget(NSObject.self, action: #selector(displayWebLink), forControlEvents: .TouchUpInside)
return button

}()

func displayWebLink() {
print("abcdefghijklmnop")
if let urlLink = activity?.url {
// UIApplication.sharedApplication().openURL(NSURL(string: urlLink)!)
UIApplication.sharedApplication().openURL(NSURL(string: urlLink)!, options: [:], completionHandler: nil)
print("dhudududuhdu")
}
}

`

最佳答案

这不是一个非常有用的错误信息。编译器正在尝试验证正确的对象是否定义了名称为 displayWebLink 的方法,并且它似乎正在使用闭包类型作为它正在搜索的上下文。

尝试告诉它在哪里可以找到该方法:

button.addTarget(self, action: #selector(ActivityInfoView.displayWebLink), forControlEvents: .TouchUpInside)

关于objective-c - Swift 2.3 Button to open URL failed with error unrecognized selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42517847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com