嘿嘿,我在这里遇到麻烦。好吧,我试图将字符串中的值传递给标签。我设置为函数内的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 :(得分:2)
[MyViewClassName print];
应该是
[self print];
print
是一个实例方法,应该在实例上调用它。通过执行[MyViewClassName print]
,您试图在类本身上调用它,而不是在类的实例上调用它。
在类对象本身上调用的方法(例如[NSObject alloc]
)是类方法,它们的声明以+
开头,而不是实例方法开头的-
。< / p>