Это не вызов класса NSObject
Я создал простой класс NSObject, чтобы принимать некоторые значения. В моем приложении не было ошибок при запуске и сборке приложения. Я пробовал много времени, чтобы запустить программу. Я начинающий цели c.
Код::
#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]);
Что-то не так в этом вызывающем методе?
2 ответа
Решение
Сначала выделите init ваш массив
#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
Попробуйте использовать
@synthesize *myFibonachi;
в вашем файле ViewController.m ниже @implementation