使用函数传递字符串的问题

时间:2011-01-11 17:39:06

标签: iphone objective-c

嘿嘿,我在这里遇到麻烦。好吧,我试图将字符串中的值传递给标签。我设置为函数内的setText:myString,但不起作用。但是当我尝试在viewDidLoad中设置一些随机文本时,它可以工作。

我的函数在viewDidLoad中调用。

    - (void)viewDidLoad {
        //this works
        [precoProd setText:@"hahaha"];
        //here not
        [MyViewClassName print];
        [super viewDidLoad];
    }
   -(void) print{

        float x = 500;
        float c = x/3;

        NSString *valorTotalParcelas;

        if(c > 0) {
            NSString *pVal = [NSString stringWithFormat:@"%0.2f", c];
            NSString *cents = [pVal substringFromIndex:2];
            NSString *reais = [pVal substringWithRange:NSMakeRange(0, 1)];

            valorTotalParcelas = [[NSString alloc] initWithFormat:@"%@,%@",reais, cents];


        }
        // ---------------------
        if(c > 9.99) {
            NSString *pVal = [NSString stringWithFormat:@"%0.2f", c];
            NSString *cents = [pVal substringFromIndex:3];
            NSString *reais = [pVal substringWithRange:NSMakeRange(0, 2)];

            valorTotalParcelas = [[NSString alloc] initWithFormat:@"%@,%@",reais, cents];

        }
        // ---------------------
        if(c > 99.99) {
            NSString *pVal = [NSString stringWithFormat:@"%0.2f", c];
            NSString *cents = [pVal substringFromIndex:4];
            NSString *reais = [pVal substringWithRange:NSMakeRange(0, 3)];

            valorTotalParcelas= [[NSString alloc] initWithFormat:@"%@,%@",reais, cents];

        }
        // ---------------------
        if(c > 999.99) {
            NSString *pVal = [NSString stringWithFormat:@"%0.2f", c];
            NSString *cents = [pVal substringFromIndex:5];
            NSString *reais = [pVal substringWithRange:NSMakeRange(0, 4)];

            valorTotalParcelas = [[NSString alloc] initWithFormat:@"%@,%@",reais, cents];

        }

        NSLog(@"FINAL VALUE ---> %@", valorTotalParcelas);
        [precoProd setText:valorTotalParcelas];

    }

我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:2)

[MyViewClassName print];

应该是

[self print];

print是一个实例方法,应该在实例上调用它。通过执行[MyViewClassName print],您试图在类本身上调用它,而不是在类的实例上调用它。

在类对象本身上调用的方法(例如[NSObject alloc])是类方法,它们的声明以+开头,而不是实例方法开头的-。< / p>