我正在检查字符串的第一个字母是否为 0,如果它被删除并再次调用方法来检查是否仍然有 0。我已经对此进行了调试,似乎当它完成没有 0 的数字时,它会继续向后。代码:
-(NSString *)deleteZerosOnFirst:(NSString *)card
{
NSString *firstLetter = [card substringToIndex:1];
if ([firstLetter isEqualToString:@"0"]) {
card = [card substringFromIndex:1];
[self deleteZerosOnFirst:card];
NSLog(@"CARD: %@", card);
return card;
}
else {
NSLog(@"CARD: %@", card);
return card;
}
}
最佳答案
主要问题是您没有使用递归的结果。你自称的代码行应该这样说:
card = [self deleteZerosOnFirst:card];
此外,您在执行 NSLog 之前调用 deleteZerosOnFirst。颠倒这两行的顺序。这至少会以正确的顺序为您提供调试输出。
关于ios - 递归方法 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043492/