我在Xcode中需要一些帮助。我收到错误线程1:SIGABRT,它指向main.m文件。我设置了异常断点,它仍然在main.m文件中停止。
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
这是我在main.m文件中的代码。有人可以帮我解决这个错误。
完整错误是:
2013-09-07 23:41:05.440 save the jewel 5[86090:c07] -[game pause:]: unrecognized selector sent to instance 0x845ece0
2013-09-07 23:41:09.460 save the jewel 5[86090:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[game pause:]: unrecognized selector sent to instance 0x845ece0'
*** First throw call stack:
(0x1693012 0x13a0e7e 0x171e4bd 0x1682bbc 0x168294e 0x13b4705 0x2e82c0 0x2e8258 0x3a9021 0x3a957f 0x3a86e8 0x317cef 0x317f02 0x2f5d4a 0x2e7698 0x26f5df9 0x26f5ad0 0x1608bf5 0x1608962 0x1639bb6 0x1638f44 0x1638e1b 0x26f47e3 0x26f4668 0x2e4ffc 0x23c2 0x22f5)
libc++abi.dylib: terminate called throwing an exception
在我的game.m文件中,我有:
-(void)pauseLayer:(CALayer*)layer{
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
}
-(void)resumeLayer:(CALayer*)layer{
CFTimeInterval pausedTime = [layer timeOffset];
layer.speed = 1.0;
layer.timeOffset = 0.0;
layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = timeSincePause;
}
- (IBAction)pause:(id)sender {
[self pauseLayer:self.view.layer];
}
- (IBAction)resume:(id)sender {
[self resumeLayer:self.view.layer];
}
在我的game.h文件中,我有:
- (IBAction)pause:(id)sender;
- (IBAction)resume:(id)sender;
-(void)pauseLayer:(CALayer*)layer;
-(void)resumeLayer:(CALayer*)layer;
我需要一些帮助。
答案 0 :(得分:2)
-[game pause:]: unrecognized selector sent to instance 0x845ece0
这意味着你有一个game
类的实例(顺便说一句,那个类应该是Game
,而不是game
,类是大写的)有些东西正在调用方法该课程pause:
,但没有pause:
方法。
鉴于该类被称为Game
(已修复)并且暂停对游戏来说似乎是合理的事情,因此这不太可能是过度释放问题。 pause:
似乎是您可能在界面构建器中连接了一个按钮。
您是否真的将pause:
方法重命名为其他内容(pauseGame:
?)而不是修复IB中的连接?
pause:
实施是否在@implementation Game
范围内?如果是这样,尝试清理项目并重建,因为可能存在依赖性问题。如果没有,那就是你的问题。
如果从干净的东西构建不起作用,那么缺少一些细节。由于从清洁构建不起作用,您将不得不发布更多细节。至少显示班级的声明。