Objective C - 方法定义不在@implementation 上下文中

Objective C - Method Definition not in @implementation context

我的代码:

#import <Foundation/Foundation.h>

-(NSString *) Fibonacci:(int) number{
//Fibonacci Calculations
}

int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Fibonacci Output: %@", Fibonacci(5));
[pool drain];
return 0;
}

我是 Objective-C 世界的新手,因此无法完成上述工作。 面临以下错误:

错误: source_file.m:5:1: 错误:方法定义不在@implementation 上下文中 -(NSString *) lastdigitsFibonacci:(int) 数{ ^ source_file.m:6: 被之前的错误弄糊涂了,摆脱困境

如能提供上述任何帮助,我们将不胜感激。谢谢

正如@Larme 所说,Fibonacci(5) 似乎是一个函数。 -(NSString *) Fibonacci:(int) number 好像是个方法

所以要调用 Fibonacci(5),您应该将 -(NSString *) Fibonacci:(int) number 重写为函数。

NSString* Fibonacci(int number) {

  int t1 = 0;
  int t2 = number > 1 ? 1 : 0;
  int tmp;

  for (int i = 3; i <= number; i++) {
    tmp = t2;
    t2 += t1;
    t1 = tmp;
  }

  return [NSString stringWithFormat:@"%lu", t2];
}

int main(int argc, char* argv[]) {
  @autoreleasepool {
    NSLog(@"%@", Fibonacci(999));
  }
}
#import <Foundation/Foundation.h>

NSString*  Fibonacci(int number) ;

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Fibonacci Output: %@", Fibonacci(5));

    }
    return 0;
}

NSString*  Fibonacci(int number)
{
    //Fibonacci Calculations and return
}