如何将 objective-c 类和"main"组合到一个文件中?(代码评估提交)



CodeEval在一个主.m文件中接受objective-c程序,但我的答案依赖于使用辅助类来执行我定义的递归方法调用。帮助程序类有一个单独的 .h 和 .m 文件,所以我总共有 3 个文件(包括我的主 .m 文件)。 如何将它们作为一个文件一起提交?

我的第一个想法是将方法所做的工作转移到main,但我不能这样做,因为其中一个是递归的,需要能够调用自己。我似乎也无法在 objective-c 中的类之外定义方法。

我不想在没有递归的情况下将我的程序重写为 main,因为那会是糟糕的形式。

这是对CodeEval的objective-c提交的限制,还是有其他方法可以做到这一点?

你为什么不把所有东西都放在main.m中,像这样:

#import <Foundation/Foundation.h>
// previously in myrecursivecomputer.h
@interface MyRecursiveComputer : NSObject
- (int)fac:(int)x;
@end
// previously in myrecursivecomputer.m
@implementation MyRecursiveComputer
-(int)fac:(int)x
{
    if (x == 0) return 1;
    else return [self fac:x-1] * x;
}
@end
int main(int argc, const char * argv[])
{
    @autoreleasepool {
        MyRecursiveComputer *c = [MyRecursiveComputer new];
        int f = [c fac:4];
        NSLog(@"Result: %d", f);
    }
    return 0;
}

相关内容

最新更新