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

第二个视图.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.text. self.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 回答