使用 UISegmentedControl 发送的无法识别的选择器
Posted
技术标签:
【中文标题】使用 UISegmentedControl 发送的无法识别的选择器【英文标题】:Unrecognized selector sent using UISegmentedControl 【发布时间】:2017-12-15 16:38:43 【问题描述】:我想将UISegmentedControl
添加到视图控制器,这是相应的代码:
import UIKit
class QuantityNoImageViewController: UIViewController
var food: Food!
@IBOutlet weak var foodName: UILabel!
@IBOutlet weak var message1: UILabel!
@IBOutlet weak var message2: UILabel!
@IBOutlet weak var message3: UILabel!
@IBOutlet weak var segmentControl: UISegmentedControl!
@IBAction func segmentControlPressed(_ sender: UISegmentedControl)
switch segmentControl.selectedSegmentIndex
case 0: print("one");
case 1: print("two");
case 2: print("three")
default: break;
@IBOutlet segmentControl
和 @IBAction segmentControlPressed
已正确设置。
当我运行应用程序时,一切都很顺利,直到我按下一个产生的片段:
2017-12-15 17:22:11.840952+0100 Healthier[3835:248257]-[Healthier.QuantityNoImageViewController segmentedControl1:]:无法识别的选择器发送到实例 0x7fc52e03ae00 2017-12-15 17:22:11.863471+0100 Healthier[3835:248257] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[Healthier.QuantityNoImageViewController segmentedControl1:]:无法识别的选择器发送到实例 0x7fc52e03ae00” *** 首先抛出调用堆栈:我只是找不到任何指针来帮助我解决这个看似简单的错误。你能帮我一些忙吗?
【问题讨论】:
猜猜看?你之前已经声明过func segmentedControl1:(_ sender: UISegmentedControl)
之类的东西,不是吗?检查您的情节提要与它连接的项目,然后将其删除。
segmentedControl1
与 segmentControlPressed
不同。
您的分段控件是如何从界面生成器连接起来的?它的动作是如何联系起来的?
所以您在segmentControlPressed
中放置了一个断点并点击它?所以错误引用了segementedControl1
,但您已经显示了 no 代码是什么?当您显示不完整的代码时,很难提供帮助!
【参考方案1】:
您可能已通过此操作连接了多个连接(确切地说,您已从其他屏幕复制了此段控件,并且其先前的连接仍未断开)
重置/删除与该段的所有 IBAction 连接并重新连接。
Storyboard/XIB >> View Controller >> Connection Inspector >> Reset all IBActions for segment control
【讨论】:
非常感谢,我没有借口,我很感激,希望在我的经验增长时能够提供帮助!以上是关于使用 UISegmentedControl 发送的无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章