gpt4 book ai didi

ios - InterfaceBuilder 目标/操作中的 UIGestureRecognizer

转载 作者:行者123 更新时间:2023-11-29 04:47:00 24 4
gpt4 key购买 nike

我正在为 iPhone 应用程序设置 UIGestureRecognizer。我在 InterfaceBuilder 中通过将长按手势识别器从对象库拖动到必须接受手势的 View 来完成此操作。

以这种方式添加手势识别器后,它具有指向应接受手势的 View 的引用 socket 集合。

然后在 ViewController 中添加一个指向 GestureRecognizer 的 IBOutlet

IBOutlet UILongPressGestureRecognizer *gestRec;

以及手势识别器的相应操作

-(IBAction)longPress:(id)sender;

因此,手势识别器在界面构建器中显示导出和名为 longPress: 的操作,目标名为 ControlManager

但是当我在 iPhoneSimulator 中进行长按手势时,我的程序崩溃了。当我 NSlog 我的 GestureRecognizer 的描述时,它显示以下输出:

<UILongPressGestureRecognizer: 0x6859620; 
state = Possible;
view = <UIView 0x6859e20>;
target= <(action=longPress:, target=<ControlManager 0x6859af0>)>>

我认为问题出在最后一行,它应该如下所示:

target=<ControlManager 0x6859af0>; 
action=longPress:

我做错了什么吗?

最佳答案

您是否在 .m 中实现了 -(void)longPress:(UIGestureRecognizer)recognizer? (我建议更新 id -> UIGestureRecognizer 和发送者 -> 识别器;IBAction 的 typedef 为 void,但您可以将其明确表示)

您肯定想要实现选择器,当方法(如果实现的话)与选择器不匹配时,这种类型的崩溃很常见。即使缺少冒号也可能导致不匹配。

此外,您是否将调试器设置为在引发异常时中断?如果没有,请转到调试器(左 Pane 左起第六个“选项卡”),单击 + 添加一个新选项“添加异常断点”,并保留默认值)。一旦引发异常,这会将您插入调试器,这通常是堆栈中的有用位置。

祝你好运

达米安

关于ios - InterfaceBuilder 目标/操作中的 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9485675/

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