我创建了一种计算简单计算的方法。
我希望该方法返回一个int并获取2个int参数。
我创建了一个名为calculate的类。我将计算导入viewController.m并创建了一个动作2 textFields和一个文本Label。我正在使用此视图来测试该方法。 我的方法在计算中返回0。我究竟做错了什么?这很简单,但我似乎无法弄清楚我在哪里弄错了。这是代码。
Calculation.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
Calculation.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.计算未计算。
答案 0 :(得分:1)
你的陈述是倒退的。您正在尝试将odometerTotal的值设置为标签的值,但您想要反过来。它应该是:
displayLabel.text = [NSString stringWithFormat:@“%d”,mileage.odometerTotal];
但是,里程返回一个int值,因此您不需要在Calculation类中使用odometerTotal属性。你可以这样做:
displayLabel.text = [NSString stringWithFormat:@"%d",[mileage mileageStart:odomStart mileageEnd:odomEnd]];
答案 1 :(得分:-2)
我看到了整个程序,你所做的任务似乎错了,
大胆指出如下:
mileage.odometerTotal = displayLabel.text.intValue;
您想使用calculate类来计算总值。虽然订单应该相反。
这个怎么样:
displayLabel.text.iniValue = mileage.odometerTotal;
然后使用NSLog
方法打印您的预期结果。