2011-01-11 19 views
0

ここで何か問題が発生しています。文字列からラベルに値を渡そうとしています。私は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]; 

    } 

何が間違っていますか?ありがとう!

+0

確かに、メモリリークがあります。「valorTotalParcelas」は決して 'release'メッセージを送信しませんでした。 –

答えて

2
[MyViewClassName print]; 

[self print]; 

printなければならないが、それがインスタンス上で呼び出される必要があり、インスタンスメソッドです。 [MyViewClassName print]を実行すると、クラスのインスタンスではなく、クラス自体で呼び出そうとしています。クラスオブジェクト自体(のような例えば[NSObject alloc])で呼び出される

メソッドは、クラスメソッドとその宣言は+代わりのインスタンスメソッドで始まる-で開始されています。

+0

ありがとう、それは働いた!どうもありがとう! –

関連する問題