0

いくつかの単位用の単純なコンバーターを作成しようとしていますが、両方の列からデータを取得して、計算できる変数にすることができないようです。また、いくつかのエラーが発生します。誰かが調べていただければ幸いです。エラーは#pragmaマーク-PickerViewDelegateにあり、コードの約90%が間違っていると思います。

これが完全な.hファイルです。(今回はこれを正しい方法で行ったことを願っています)そして、誰かがそれを調べる時間があれば、これが完全なプロジェクトです。http://www.mediafire.com/download.php?ss706o783ioa59u

#import "MainViewController.h"

@interface MainViewController ()

@end

@implementation MainViewController
@synthesize _convertFrom, _convertTo, _convertRates;
@synthesize dollarText, picker, resultLabel;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_convertFrom = @[@"Australia (AUD)", @"China (CNY)",
@"France (EUR)", @"Great Britain (GBP)", @"Japan (JPY)"];

_convertRates = @[ @0.9922f, @6.5938f, @0.7270f,
@0.6206f, @81.57f];

_convertTo = @[@"Australia (AUD)", @"China (CNY)",
@"France (EUR)", @"Great Britain (GBP)", @"Japan (JPY)"];

_convertRates = @[ @0.9922f, @6.5938f, @0.7270f,
@0.6206f, @81.57f];

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
//dont forget to put something in here later
}

- (IBAction)textFieldReturn:(id)sender {
[sender resignFirstResponder];

}

#pragma mark -
#pragma mark PickerView DataSource

- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView
{
    return 2;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:      (NSInteger)component
{
if (component == 0)  {
    return [_convertFrom count];
}
return [_convertTo count];
}


- (NSString *) pickerView: (UIPickerView *)pickerView
          titleForRow:(NSInteger)row
         forComponent:(NSInteger)component
{
if (component == 0) {
    return [_convertFrom objectAtIndex:[pickerView selectedRowInComponent:0]];
    }
return [_convertTo objectAtIndex:[pickerView selectedRowInComponent:1]];
    }




#pragma mark -
#pragma mark PickerView Delegate
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
  inComponent:(NSInteger)component
{
    float from = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:0]     floatValue]];
    float to = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:1] floatValue]];
float input = [dollarText.text floatValue];

// This stuff is from some guide.
//float rate = [_convertRates[row] floatValue];
//float dollars = [dollarText.text floatValue];
//float result = dollars * rate;

NSString *resultString = [[NSString alloc] initWithFormat:
                          @"%.2f @% = %.2f %@", input, [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:0] floatValue]], result, [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:0] floatValue]]];
resultLabel.text = resultString;
}


#pragma mark - Flipside View

- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showAlternate"]) {
    [[segue destinationViewController] setDelegate:self];
    }
}

@end

前もって感謝します :)

4

2 に答える 2

1

私はあなたのコードを見ましたが、それでもあなたの計算についていくつかの疑問があります、しかしあなたのブレースは間違っていました、そしてこれだけのようにそれを実装してください:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
      inComponent:(NSInteger)component
{
    float from = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:0]] floatValue];
    float to = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:1]] floatValue];
    float input = [dollarText.text floatValue];

    // This stuff is from some guide.
    float rate = from;
    float dollars = input;
    float result = dollars * rate;

    NSString *resultString = [[NSString alloc] initWithFormat:
                              @"result = %f = %f * %f", result, dollars, rate];
    resultLabel.text = resultString;
}

-(IBAction)clear {

}

于 2012-10-12T18:47:32.380 に答える
0

これらの2行:

float from = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:0]     floatValue]];
float to = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:1] floatValue]];

する必要があります:

float from = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:0]] floatValue];
float to = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:1]] floatValue];

間違った場所にブラケットがあります。また、「resultString」行にも同じ問題が複数回発生しているようです。

于 2012-10-12T18:52:06.113 に答える