【问题标题】:Use selector with two (or more) parameters使用带有两个(或更多)参数的选择器
【发布时间】:2014-01-22 00:17:57
【问题描述】:

我已经阅读了这个问题:

Relevant question

而且我仍然不知道如何使用带有多个参数的选择器。

这是我的代码:

{
...
//add single tap gesture to the view
SEL mySelector = @selector(handleSingleTap:withScroll:);
UIGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:mySelector];
[myView addGestureRecognizer:singleTap];
...
}

和:

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer withScroll:(UIScrollView*)scroll {
    ...
}

但它当然行不通。 (UIScrollView*)scroll 在运行时是 nil

例如,我如何将其设置为(UIScrollView*)scroll

任何帮助将不胜感激。

【问题讨论】:

  • 阅读UIGestureRecognizer 文档的概述部分。选择器必须恰好是两种特定形式之一。

标签: ios objective-c uiscrollview selector uigesturerecognizer


【解决方案1】:

UIGestureRecognizer 的选择器仅使用 1 个参数,识别器本身仅使用 1 个参数调用您的选择器,因此该方法中的任何其他参数都将为 nil,因为调用堆栈中没有更多参数。

【讨论】:

  • “所以方法中的任何其他参数都可能为零”,它们将是垃圾
【解决方案2】:

我所做的是发送一个实际上是 NSDictionary 的单个参数......所以我可以在单个参数中发送大量信息。 GL 高频

【讨论】:

    猜你喜欢
    • 2018-05-02
    • 2011-12-01
    • 2022-06-15
    • 1970-01-01
    • 2012-06-26
    • 2017-03-10
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多