首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMutable阵列,精灵套件(EXC_ARITHMETIC)错误?

NSMutable阵列,精灵套件(EXC_ARITHMETIC)错误?
EN

Stack Overflow用户
提问于 2014-07-22 12:36:49
回答 1查看 124关注 0票数 0

我正在尝试创建一个SKlabelNode,它将在每次调用场景时显示随机文本。我觉得我已经做好了所有的事情,但是游戏在进入这个场景时崩溃了,并返回了一个以EXC_ARITHMETIC开头的绿色错误。我在自学数组,却不知道我做错了什么?

.h

代码语言:javascript
复制
#import <SpriteKit/SpriteKit.h>
@interface EndScene : SKScene{
NSMutableArray *TextArray;
}
@end

.m

代码语言:javascript
复制
#import "EndScene.h"
#import "MyScene.h"
SKLabelNode *myLabel;

@implementation EndScene
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.scaleMode = SKSceneScaleModeAspectFill;
self.backgroundColor = [SKColor blackColor];
[self setupLabel];
[self RandomText];
[self loadText];
}
return self;
}

- (void) RandomText
{
int randomNumber = arc4random() % TextArray.count;
myLabel.text = [NSString stringWithFormat:@"%@",[TextArray   objectAtIndex:randomNumber]];
}

- (void) loadText
{
TextArray = [[NSMutableArray alloc] init];
[TextArray addObject:@"End Of Game Text"];
[TextArray addObject:@"End Text 2"];
}

-(void) setupLabel{
myLabel = [SKLabelNode labelNodeWithFontNamed:@"Academy Engraved LET"];
myLabel.fontSize = 44;
myLabel.zPosition = 0;
myLabel.position = CGPointMake(390, 660);
[self addChild:myLabel];
}


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

SKScene *myScene = [[MyScene alloc]initWithSize:self.size];
SKTransition *doors = [SKTransition crossFadeWithDuration:5];
[self.view presentScene:myScene transition:doors];
}

@end
EN

回答 1

Stack Overflow用户

发布于 2014-07-22 13:07:06

这个问题很可能是由于您的NSMutableArray在执行此行时未定义:

代码语言:javascript
复制
int randomNumber = arc4random() % TextArray.count;

如果数组计数等于零,您可能还会得到算术错误,这将导致通过模数计算除以零。

快速解决方法是在init中对方法调用进行重新排序,如下所示:

代码语言:javascript
复制
self setupLabel];
[self loadText]; // now the array is defined
[self RandomText];

这是一个很好的例子,说明你想要了解你的调试器。您可以实际检查属性/ivar的值,就像您的TextArray一样,并轻松查看是否有未定义的内容或不是您所期望的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24879016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档