0

我在 Xcode 4.4 中创建了一个基于数学的应用程序。我在故事板的帮助下使用基于标签栏的应用程序。

我已经在一个单独的类中编写了我所有的数学函数, CalculationMethods它是 NSObject 的子类。

我的视图控制器:

//  FirstViewController.h

#import <UIKit/UIKit.h>
#import "CalculationMethods.h"

@interface FirstViewController : UIViewController

@end

//  FirstViewController.m

#import "FirstViewController.h"
#import "CalculationMethods.h"

@interface FirstViewController ()

@end

@implementation FirstViewController



- (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"%f",[self julianDateFinder: [self currentDayMonthAndYearFinder]]);
}

@end

如您所见,我已经在 FirstViewController.h 和 FirstViewController.m 文件中包含了我的 CalculationMethod.h 文件,但是当我使用该类的方法时,例如julianDateFinderand currentDayMonthAndYearFinder,Xcode 错误,说:

“‘FirstViewController’没有可见的@interface声明选择器‘CurrentDayMonthAndYearFinder’”

我是 iOS 和 XCode 的新手。谁能帮我解决错误?

4

2 回答 2

0

我认为您误解了 Objective C 的工作原理。

如果不添加CalculationMethods.h头文件的详细信息,我对您帮助不大,但是编译器警告告诉您FirstViewController没有方法currentDayMonthAndYearFinder

出现这种情况的原因是因为您正在调用执行选择器CurrentDayMonthAndYearFinder ,在您的实例self的上下文中实际上是FirstViewControllerFirstViewController

你自己说过你的方法CurrentDayMonthAndYearFinder在你的CalculatorMethods类上,所以我建议你要么创建一个 CalculatorMethods 类的实例,要么调用CurrentDayMonthAndYearFinder你的 CalculatorMethods 类上命名的类方法。

这里的问题是天气或您是否定义了实例方法或类方法。

帮自己一个忙,用以下内容更新您的问题CalculationMethods.h

于 2012-07-30T01:32:28.893 回答
0

在 FirstViewController 中,要使用 CalculationMethods 类中的任何方法,您需要创建一个 CalculationMethods 实例。然后使用以下语法访问方法: [instanceOfCalculationMethods aMethodInCalculationMethods];

例如,在你的情况下,试试这个:

在 FirstViewController.h 文件中,@end 之前:

CalculationMethods *_calculationMethods;

在 viewDidLoad 方法中:

_calculationMethods = [CalculationMethods alloc] init];
NSLog(@"%f",[_calculationMethods julianDateFinder: [_calculationMethods currentDayMonthAndYearFinder]]);
于 2012-07-30T03:28:28.990 回答