2012-10-08 56 views
2

我希望你能在Objective-C中解决以下问题。现在我已经坐了两个小时了,但我不知道什么是错的。不能调用其他类的实例方法

Here's我的代码:

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’

我不能调用方法‘bmiRows’与对象“bmiSender”(均为“BMICalc”类)

我希望你能帮助我。我找啊找......我想it's只是一个很小的事情,但我不会致使看到它... ...

谢谢和问候,

斯特凡

+0

它在你的错误信息中说'BMIClass',但是它在程序中是'BMICalc'。你输错了名字吗? – dasblinkenlight

+0

错误是真的说BMIClass,而不是BMICalc,或者是一个错字? – rdelmar

+0

哦,我很抱歉,当然是“BMICalc” –

回答

0

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

+1

我刚刚创建了一个新项目并添加了BMICalc.m和BMICalc.h - 它工作正常!我会尝试重新创建我的整个项目,这个应该是可行的。Weired。非常感谢! –

+0

没问题!很高兴你走在正确的道路上! – bgolson