2

Objective-Cで次の問題が発生した場合にご協力いただければ幸いです。私は今2時間座っていますが、何が悪いのかわかりません。

これが私のコードです:

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」(両方ともクラス「BMICalc」)でメソッド「bmiRows」を呼び出すことができません

私はあなたがこれで私を助けることができることを願っています。検索して検索しました...小さなことだと思いますが、表示されません...

ありがとう、よろしく、

ステファン

4

1 に答える 1

0

新しいプロジェクトを作成してみてください。次に、BMICalc.mファイルとBMICalc.hファイルを追加します。BMICalcオブジェクトをインスタンス化し、appDelegateからbmiRowsメソッドを呼び出してテストしてみてください。メインプロジェクトには、クラスに干渉している可能性のある問題がいくつもある可能性があります。少なくともこれを行うことで、あなたが気が狂っていないこと、そしてこのコードが問題ではないことを確認できます:)

于 2012-10-08T19:45:26.750 に答える