0

簡単な計算を計算する方法を作成しました。

メソッドが int を返し、2 つの int パラメータを取るようにしたい。

計算というクラスを作りました。計算を viewController.m にインポートし、アクション 2 の textFields とテキストのラベルを作成しました。このビューを使用してメソッドをテストしています。私のメソッドは計算で 0 を返します。私は何を間違っていますか?とても単純ですが、どこで間違いを犯しているのかわかりません。これがコードです。

計算.h

#import <Foundation/Foundation.h>

@interface Calculation : NSObject

@property (nonatomic) int odometerStart;
@property (nonatomic) int odometerEnd;
@property (nonatomic) int odometerTotal;

- (int)mileageStart:(int)start mileageEnd: (int)end;    

@end

計算.m

#import "Calculation.h"

@implementation Calculation
@synthesize odometerEnd, odometerStart, odometerTotal;      


- (int)mileageStart:(int)start mileageEnd:(int)end
{
    odometerStart = start;
    odometerEnd = end;
    odometerTotal = end - start;        
    return odometerTotal;
} 
@end

viewController.h

#import <UIKit/UIKit.h>

@interface MileageViewController : UIViewController
- (IBAction)calculateMileage:(id)sender;
@property (strong, nonatomic) IBOutlet UITextField *startLabel;
@property (strong, nonatomic) IBOutlet UITextField *endLabel;
@property (strong, nonatomic) IBOutlet UILabel *displayLabel;
@end

viewController.m

#import "MileageViewController.h"
#import "Calculation.h"

@implementation MileageViewController
@synthesize startLabel;
@synthesize endLabel;
@synthesize displayLabel;

- (void)viewDidUnload
{
    [self setStartLabel:nil];
    [self setEndLabel:nil];
    [self setDisplayLabel:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (IBAction)calculateMileage:(id)sender {        
    Calculation *mileage = [[Calculation alloc] init];

    int odomStart = [[startLabel text] intValue];
    int odomEnd = [[endLabel text ] intValue];
    [mileage mileageStart:odomStart mileageEnd:odomEnd];
    mileage.odometerTotal = displayLabel.text.intValue;
    NSLog(@"THe total is %d", mileage.odometerTotal);

合計が 0 のままです。計算が計算されていません。

4

2 に答える 2

1

あなたの発言は逆です。odometerTotal の値をラベルの値に設定しようとしていますが、逆にしたいとします。そのはず:

displayLabel.text = [NSString stringWithFormat:@"%d",mileage.odometerTotal];

ただし、mileage は int 値を返すため、Calculation クラスに odometerTotal プロパティは必要ありません。次のようにできます。

displayLabel.text = [NSString stringWithFormat:@"%d",[mileage mileageStart:odomStart mileageEnd:odomEnd]];
于 2013-01-20T05:44:26.903 に答える
-2

プログラム全体を見ましたが、あなたがした課題は間違っているように見えました。

太字は次のとおりです。

mileage.odometerTotal = displayLabel.text.intValue;

計算クラスを使用して合計値を計算します。順序は逆にする必要があります。

これはどう:

displayLabel.text.iniValue = mileage.odometerTotal;

次に、NSLogメソッドを使用して、期待される結果を出力します。

于 2013-01-20T07:03:52.083 に答える