2011-07-13 42 views
1

我一直在这上几个小时,找不到解决方案。当我尝试编译以下内容时,我在标记的行上得到了“初始化时不兼容的类型”错误。任何帮助都被接受。初始化错误中的不兼容类型

这里是我的Controller.m或者文件:

#import "Controller.h" 
#import "Transactions.h" 

@implementation Controller 
- (IBAction)add:(id)sender { 
    double x = [addF doubleValue]; 
    double bal = [balanceF doubleValue]; 
    double newBal = [trans add:x to:bal]; //Error marked here 
    [balanceF setDoubleValue:newBal]; 
} 

- (IBAction)sub:(id)sender { 
    double x = [subF doubleValue]; 
    double bal = [balanceF doubleValue]; 
    double newBal = [trans sub:x from:bal]; //Error marked here 
    [balanceF setDoubleValue:newBal]; 
} 
@end 

这是我的Transactions.m文件:

#import "Transactions.h" 

@implementation trans 

-(double) add:(double)x to:(double)bal{ 
    return (x + bal); 
} 

-(double) sub:(double)x from:(double)bal{ 
    return (bal - x); 
} 

@end 

请告诉我,如果你需要什么。 谢谢!

+0

好奇......怎么看起来你的Transactions.h文件? – 2011-07-13 18:16:24

+0

您是否在Transactions头文件中使用相同的签名声明了add和sub方法? – omz

回答

1

“反式”是一类,因此,如果你声明/调用方法使用类,而不是它的一个实例,他们应该+声明:

+(double) add:(double)x to:(double)bal{ 

+(double) sub:(double)x from:(double)bal{ 

不要忘记改变头文件以及...

+0

感谢您的快速回答!我认为我已经在这里声明了'bal'作为'double':'double bal = [balanceF doubleValue];'你做了' – Simon

+0

,但这是关于方法修饰符,而不是变量。在编辑之前忽略答案,这是错误的。 – MByD

+0

完美!感谢您的帮助。 – Simon

相关问题