Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 场景转换按钮的选择器无法识别_Ios_Objective C_Sprite Kit - Fatal编程技术网

Ios 场景转换按钮的选择器无法识别

Ios 场景转换按钮的选择器无法识别,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,嘿,我是新来的Xcode,所以可能这有一个非常简单的修复,在这种情况下,我很抱歉,但我已经尝试了一切,并在网上寻找,迄今为止没有任何工作。基本上,我创建了一个continueButton,以便在关卡完成后过渡到应用程序中的下一个场景。下面是它的代码 UIButton *continueButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; continueButton.frame = CGRectMake(120, 150, 80,

嘿,我是新来的Xcode,所以可能这有一个非常简单的修复,在这种情况下,我很抱歉,但我已经尝试了一切,并在网上寻找,迄今为止没有任何工作。基本上,我创建了一个continueButton,以便在关卡完成后过渡到应用程序中的下一个场景。下面是它的代码

UIButton *continueButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
continueButton.frame = CGRectMake(120, 150, 80, 44);
[continueButton setTitle:@"Continue" forState:UIControlStateNormal];
[continueButton addTarget:self action:@selector(SKTransition:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:continueButton];
然后我定义了当我点击continueButton时会发生什么,如下所示

-(void)buttonPressed:(UIButton *)sender
{
    SKAction *levelChange = [SKAction runBlock:^{

        SKTransition *doors = [SKTransition
                               doorsOpenVerticalWithDuration:2];

        SKScene *Level2Scene  = [[Transition2Scene alloc]
                                 initWithSize:self.size];

        [self.view presentScene:Level2Scene transition:doors];
        [self runAction:levelChange];
    }];
}
但是,每当我运行该应用程序并单击continueButton时,就会出现此错误

2014-07-27 21:14:14.225 MazeGame[40846:60b]-[Level1场景 SKTransition::发送到实例0x14158670的选择器无法识别 (lldb)

在代码的这一点上

#import <UIKit/UIKit.h>
#import "SpriteAppDelegate.h"

int main(int argc, char * argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([SpriteAppDelegate class]));
    }
}
#导入
#导入“SpriteAppDelegate.h”
int main(int argc,char*argv[])
{
@自动释放池{
返回UIApplicationMain(argc、argv、nil、NSStringFromClass([SpriteAppDelegate类]);
}
}

我不知道到底出了什么问题,也不知道该怎么办,非常感谢您的帮助/建议,谢谢

我猜问题在于这一行:

[continueButton addTarget:self action:@selector(SKTransition:) forControlEvents:UIControlEventTouchUpInside];
应该是:

[continueButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

它的意思是,您对类“Level1Scene”的对象调用了方法“SKTransition”,而该类没有该名称的方法。如果您查看异常跟踪(请参阅),那么您将看到此调用发生的确切位置。基本上,这意味着您不知何故在指针中得到了错误的对象。(请注意,如果编译器因为找不到包含方法“SKTransition”的接口而尖叫,这就是它试图警告您的原因。)添加异常断点以查看发生错误的确切代码行,如果没有这个断点,所有错误都将指向main()中的行。嘿,谢谢你的帮助!很抱歉,这是一个很明显的解决办法,我觉得自己很笨,但我感谢你的帮助