0

テキストフィールドがあり、ユーザーがそこに数値を入力する必要があります。この数値を浮動小数点値に変換して、別のビューに移動する必要があります。エラーが見つかりません...Xcodeは「float valor = [[_inserir.text ] floatvalue];」行にあると言っています。誰かが私のエラーがどこにあるかを見つけることができたら、ありがとう。

最初のビュー.h:

#import <UIKit/UIKit.h>

@interface CedulasFirstViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITextField *inserir;
- (IBAction)calc:(id)sender;

@end

最初のビュー.m:(私の変数名の前の下線、xcodeはそれを単独で配置し、それを削除しても何も変更されません)

#import "CedulasFirstViewController.h"
#import "CedulasSecondViewController.h"

@interface CedulasFirstViewController ()

@end

@implementation CedulasFirstViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)calc:(id)sender {

    float valor = [[_inserir.text ] floatvalue];

    CedulasSecondViewController *second [[[CedulasSecondViewController alloc] init]];

    second.valor = self.valor;

}
@end

2番目のビュー.h:

#import <UIKit/UIKit.h>

@interface CedulasSecondViewController : UIViewController{


}

@end

セカンドビュー.m:

#import "CedulasSecondViewController.h"

@interface CedulasSecondViewController ()

@end

@implementation CedulasSecondViewController

- (void)viewDidLoad
{

    NSString *numberFromTF [[NSString alloc] initWithFormat:@"%.2f", valor];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

ありがとう

編集:

誰かが私にxcodeが変数の前にこのアンダースコアを置くように言う理由を説明できれば

4

3 に答える 3

2

ここで行う必要があることがいくつかあります。

まず、でプロパティを作成したCedulasFirstViewController.hので、で合成する必要がありますCedulasFirstViewController.m。でCedulasFirstViewController.m、線の下に、@implementation CedulasFirstViewControllerと入力します

@synthesize inserir;

次に、その行float valor = [[_inserir.text ] floatvalue];にいくつかのエラーがあります。プロパティをインスタンス変数のように扱っているので、代わりに_inserir.textを使用する必要がありますself.inserir.text。また、角かっこは関数の実行時に使用され、で実行されている関数はないため、内側の角かっこを削除する必要がありますself.inserir.textself.inserir.text(または_inserir.text、そのことについては)は単なるオブジェクトです。

これはすべて、エラーを生成する行が次のようになることを意味します。

float valor = [self.inserir.text floatvalue];

このコードには他にもいくつか問題があるようですが、それらについて質問する場合は、別の質問にする必要があります。

于 2013-01-11T03:53:17.807 に答える
1

この次の関数は、テキストを必要な形式に変換します。

 float val=[_inserir.text floatvalue];
 int val=[_inserir.text intvalue];
于 2013-01-22T06:26:01.877 に答える
0

タイプミスは次のとおりです。

float valor = [[_inserir text ] floatValue];
于 2013-01-10T00:48:30.850 に答える