ここで何か問題が発生しています。文字列からラベルに値を渡そうとしています。私は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];
}
何が間違っていますか?ありがとう!
確かに、メモリリークがあります。「valorTotalParcelas」は決して 'release'メッセージを送信しませんでした。 –