1

いくつかの値を取るために単純なNSObjectクラスを作成しました。アプリケーションを実行してビルドしても、アプリケーションでエラーは発生しません。プログラムを実行するために多くの時間を試しました。私はObjectiveCの初心者です。

コード::

#import "FibonachiNo.h"

@implementation FibonachiNo

- (NSArray *) fibonacci:(NSInteger) n {

    NSMutableArray *fib = [NSMutableArray array];

    int a = 0;
    int b = 1;
    int sum;
    int i;

    for (i=0; i<=n; i++)
    {
        [fib addObject:[NSNumber numberWithInt:a]];
        sum = a + b;
        a = b;
        b = sum;
    }

    return (NSArray *) fib;
}

- (NSInteger) factorial:(NSInteger) n {
    if ( n <= 1 )
        return 1;
    else
        return n * [self factorial:( n-1 )];
}

@end

私のアプリケーションヘッダークラ​​ス

#import <UIKit/UIKit.h>
#import "FibonachiNo.h"
@interface ViewController : UIViewController
@property FibonachiNo *myFibonachi;
@end

NSObjectクラスへのメソッドの呼び出し::

  NSLog(@"fibonacci for 10 = %@", [myFibonachi fibonacci:10]);
  NSLog(@"10! = %d",[myFibonachi factorial:10]);

この呼び出しメソッドに何か問題がありますか?

4

2 に答える 2

0

最初にアレイを初期化します

#import "FibonachiNo.h"

@implementation FibonachiNo

- (NSArray *) fibonacci:(NSInteger) n {

    NSMutableArray *fib = [NSMutableArray alloc]init];

    int a = 0;
    int b = 1;
    int sum;
    int i;

    for (i=0; i<=n; i++)
    {
        [fib addObject:[NSNumber numberWithInt:a]];
        sum = a + b;
        a = b;
        b = sum;
    }

    return fib;
}

- (NSInteger) factorial:(NSInteger) n {
    if ( n <= 1 )
        return 1;
    else
        return n * [self factorial:( n-1 )];
}

@end

NSObjectクラスへのメソッドの呼び出し::

以下のViewDidLoad使用中。

FibonachiNo *myFibonachi=[[FibonachiNo alloc]init];
  NSLog(@"fibonacci for 10 = %@", [myFibonachi fibonacci:10]);
  NSLog(@"10! = %d",[myFibonachi factorial:10]);

それでも問題が発生する場合は、NSLogの出力をここに表示してください。

于 2013-01-19T07:03:03.760 に答える
0

使ってみてください

@synthesize * myFibonachi;

@implementationの下のViewController.mファイル内

于 2013-01-19T09:27:16.953 に答える