0

Viewcontroller の UItextfields から取得した値を、それらの値から計算を行う別のクラスに設定できないという問題があります。

@interface InitialViewController : UIViewController

@property (weak, nonatomic) IBOutlet UITextField *phValue;
@property (weak, nonatomic) IBOutlet UITextField *pco2Value;
@property (weak, nonatomic) IBOutlet UITextField *hco3Value;
@property (weak, nonatomic) IBOutlet UITextField *sodiumValue;
@property (weak, nonatomic) IBOutlet UITextField *chlorideValue;
@property (nonatomic,retain)NSDecimalNumber* ph;
@property (nonatomic,retain) NSDecimalNumber* pco2;
@property (nonatomic,retain)NSDecimalNumber* hco3;
@property (nonatomic,retain)NSDecimalNumber* sodium; 
@property (nonatomic,retain)NSDecimalNumber* chloride;

- (IBAction)analyseValues:(UIButton *)sender;

@end

実装で

-(void)values{
[self setPh:[[NSDecimalNumber alloc] initWithFloat:phValue.text.floatValue ]];

[self setPco2:[[NSDecimalNumber alloc] initWithFloat:pco2Value.text.floatValue]];
[self setHco3:[[NSDecimalNumber alloc ] initWithFloat:hco3Value.text.floatValue]];
[self setSodium:[[NSDecimalNumber alloc] initWithFloat:sodiumValue.text.floatValue] ];
[self setChloride:[[NSDecimalNumber alloc] initWithFloat:chlorideValue.text.floatValue] ];
}

- (void)viewDidLoad
{
[super viewDidLoad];
[self values];}

次に、これらの値を取る別のクラスがありますが、プログラムを実行すると実行されますが、initialViewController から取得した値が割り当てられます。

#import <Foundation/Foundation.h>
#import "InitialViewController.h"

@interface AcidBaseCalculations : NSObject
@property (nonatomic) float ph;
@property (nonatomic) float pco2;
@property (nonatomic) float chloride;
@property (nonatomic) float sodium;
@property (nonatomic) float hco3;

@implementation AcidBaseCalculations

@synthesize ph,pco2,chloride,hco3,sodium;

-(void)calculations{
    InitialViewController *bvc = [[InitialViewController alloc] init]; 
ph = bvc.ph.floatValue ;

pco2 = bvc.pco2.floatValue;     
// these values are not being set although the program   runs successfully

hco3 = bvc.hco3.floatValue;
sodium = bvc.sodium.floatValue;
chloride = bvc.chloride.floatValue;

ここでこれらの新しい値を使用して、このクラスでいくつかの論理演算を実行します。

4

1 に答える 1

1

この行で新しいInitialViewControllerを作成しています:

 InitialViewController *bvc = [[InitialViewController alloc] init];

それはあなたの他の/オリジナルとは異なるインスタンスですInitialViewController

プロパティを作成する必要があります

 @property(nonatomic,strong)InitialViewController myInitialVC;

を割り当て/初期化するときに、このプロパティを設定しますAcidBaseCalculations。計算したいすべての変数のプロパティを作成し、割り当て/初期化中にそれらを設定する必要があります

AcidBase計算

于 2012-07-18T11:59:13.570 に答える