无法从其他类调用实例方法

时间:2012-10-08 18:51:20

标签: iphone objective-c ios xcode

我希望你能帮助我解决Objective-C中的以下问题。我现在已经坐了两个小时,但我不知道哪里错了。

这是我的代码:

BMICalc.h:

#import <UIKit/UIKit.h>

@interface BMICalc : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>

@property (strong, nonatomic) NSMutableArray *bmiArray;

-(int)bmiRows;

@end

BMICalc.m:

#import "BMICalc.h"

@implementation BMICalc

@synthesize bmiArray;

- (int) bmiRows
{
    if (!bmiArray)
    {
      bmiArray = [[NSMutableArray alloc] init];
    }
    return [bmiArray count];
}

@end

现在我想在另一个名为BMIDiaryController的类中创建一个BMICalc对象:

BMIDiaryController.m:

#import "BMIDiaryController.h"
#import "BMICalc.h"

@interface BMIDiaryController ()

@end

@implementation BMIDiaryController

- (void)viewDidLoad
{
    [super viewDidLoad];

    BMICalc *bmiSender = [[BMICalc alloc] init];

    int bmiVariable = [bmiSender bmiRows];       
}

@end

因此,当我启动程序时,我收到以下错误: “'BMICalc'没有可见的@interface声明选择器'bmiRows'

我无法使用对象“bmiSender”调用方法“bmiRows”(两个类都是“BMICalc”

我希望你能帮助我。我搜索和搜索......我认为这只是一件小事,但我不会看到它......

谢谢你,问候,

的Stefan

1 个答案:

答案 0 :(得分:0)

尝试创建新项目。然后添加BMICalc.m和BMICalc.h文件。尝试实例化你的BMICalc对象并从appDelegate调用bmiRows方法来测试它。您的主项目中可能存在任何可能干扰课程的错误。至少这样做会证实你并不疯狂,而且这段代码不是问题:)