ios - 在另一个对象中初始化 UISwipeGestureRecognizer 时使用未声明的标识符 'action'

标签 ios objective-c ios7 uigesturerecognizer sprite-kit

我正在尝试在我的 ViewController 的 viewDidLoad 中创建一个 UISwipeGestureRecognizer,它将使用一个选择器来调用另一个对象 (MyScene) 中的一个方法。但是,我收到以下错误:

Use of undeclared identifer 'action'

是否有这不起作用的原因?

示例代码:

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

// Configure the view.
SKView * skView = (SKView *)self.view;
if (!skView.scene) {
  skView.showsFPS = YES;
  skView.showsNodeCount = YES;

  // Create and configure the scene.
  SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
  scene.scaleMode = SKSceneScaleModeAspectFill;
  // Present the scene.
  [skView presentScene:scene];

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:(MyScene) action:@selector(screenSwipedRight)];
    swipeRight.numberOfTouchesRequired = 1;
    swipeRight.direction=UISwipeGestureRecognizerDirectionRight;
    [self.view addGestureRecognizer:(swipeRight)];

    UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:(MyScene) action:@selector(screenSwipedLeft)];
    swipeLeft.numberOfTouchesRequired = 1;
    swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;
    [self.view addGestureRecognizer:(swipeLeft)];

    UISwipeGestureRecognizer *swipeUp = [[UISwipeGestureRecognizer alloc] initWithTarget:(MyScene) action:@selector(screenSwipedUp)];
    swipeUp.numberOfTouchesRequired = 1;
    swipeUp.direction=UISwipeGestureRecognizerDirectionUp;
    [self.view addGestureRecognizer:(swipeUp)];
    }
}

如果需要更多详细信息,我很乐意提供任何其他信息。

感谢您花时间提供帮助!

最佳答案

目标需要是一个类的实例:

UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:(MyScene) action:@selector(screenSwipedRight)];

可能需要:

UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget: scene action:@selector(screenSwipedRight)];

Merhod screenSwipedRight 应该是 MyScene 类的公共(public)方法。

关于ios - 在另一个对象中初始化 UISwipeGestureRecognizer 时使用未声明的标识符 'action',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832547/

相关文章:

ios - 内存中的 AVAudioFile?

ios - 如何在我的应用程序(Swift)中检测命令 C?

html - 在 Swift 中写入本地 html 文件

objective-c - 如何在没有 url 方案或外部服务器的情况下在 2 个本地 ios 应用程序之间共享文件?

ios - 如何找到两个音频文件的偏移量?一吵一清

objective-c - UIToolbar 在 iOS 7 中不是半透明的

ios - 即使在 resignFirstResponder 上,键盘也不会隐藏在 iOS 中

ios - os, objective-c, 我无法准确知道我的应用程序崩溃的那一行

iOS不同类型的对象初始化

ios - UITableView 需要长按选择一行