Я только начал изучать Objective-C и ООП ... поэтому у меня очень глупый вопрос :)
Я хочу понять, как писать рекурсивные функции в Objective-C.
В качестве примера я получаю факториал. Вот мой код)) хе-хе
#import <Foundation/Foundation.h>
@interface Factorial : NSObject
{
int nFact;
}
-(int) countFactorial:(int) nFact;
-(void) printFactorial;
@end //Factorial
@implementation Factorial
-(int) countFactorial:(int) n
{
int tmp;
if (n!=0)
{
tmp=n*countFactorial(n-1);
}
else {
return(0);
}
nFact=tmp;
}
-(void) printFactorial
{
NSLog(@"Factorial = %i",nFact);
}
@end //Factorial
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
id myFact=[Factorial new];
int qqq=[myFact countFactorial:5];
[myFact printFactorial];
[myFact release];
[pool drain];
return 0;
}
Я получаю ошибку от компилятора - я неявно объявляю функцию countFactorial
и я получаю ошибку (конечно) от компоновщика, что он не нашел countFactorial
Пожалуйста, дайте мне любые предложения, как реализовать рекурсию в Objective-C
Я хочу использовать его в моем следующем «проекте» - крестики-нолики - чтобы найти правильный ход с помощью рекурсии)
Thx!