2011-01-11 42 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`消息。 – 2011-01-11 17:41:10

回答

2
[MyViewClassName print]; 

應該是

[self print]; 

print是一個實例方法,它應在一個實例被調用。通過做[MyViewClassName print],你試圖在類本身上調用它,而不是在類的一個實例上調用它。

在類對象本身上調用的方法(例如[NSObject alloc])是類方法,它們的聲明以+開頭,而不是以實例方法開頭的-開頭。

+0

謝謝兄弟,它的工作!非常感謝! – 2011-01-11 18:18:24