カウントタイマー(ラベル上)とラベル整数値(countという名前)を含む変数を作成します。また、数値が7であるか、7で割ったか、7が含まれているかをチェックする関数を作成します。カウント値をチェック関数に渡そうとすると、アプリはスタックになります。スタックオーバーフローが発生する理由を長い間調べようとしましたが、成功しませんでした。どうすれば解決できますか?これが私のコードです:
-(IBAction)start:(id)sender
{
timer = [NSTimer scheduledTimerWithTimeInterval:.01 target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
MainInt = 0;
numbersTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(countup) userInfo:nil repeats:YES];
}
-(void)countup
{
MainInt += 1;
numbersLabel.text = [NSString stringWithFormat:@"%i", MainInt];
count = numbersLabel.text.intValue;
NSLog(@"num: %d", count);
if ([self checknum:(count) == false]) {
NSLog(@"BOOM");
}
}
-(BOOL)checknum:(int)number
{
while (number<10)
{
if(number ==7)
{
NSLog(@"boom, i=%d", number);
return true;
}
}
while (number>=10 && number<1000)
{
if(number % 7 == 0)
{
NSLog(@"boom i=%d", number);
return true;
}
if([self revese:(number)])
{
NSLog(@"boom reverse num = %d", number);
return true;
}
}
return false;
}
-(BOOL) revese:(int)number
{
if(number < 10 && number != 7)
return false;
if(((number % 10) == 7) || ((number / 10) == 7))
return true;
else {
[self revese:(number / 10)];
}
return false;
}
ありがとう!