我正在尝试从另一个类调用一个方法,但似乎无法让它工作。 尝试来自其他线程的建议,但即使在之后似乎也只是抛出相同的错误。语言是客观的C膳食来源。
@interface Meal : NSObject
- (float)CalculateTip:(float)MealCost secondValue:(float)SelectedValue;
@end
餐源
#import "Meal.h"
@implementation Meal
- (float) CalculateTip:(float)MealCost secondValue:(float)SelectedValue
{
float finalVal = 0;
float tipval = 0;
if (SelectedValue == 0)
{
tipval = .1;
}
else if (SelectedValue == 1)
{
tipval = .15;
}
else if (SelectedValue == 2)
{
tipval = .2;
}
finalVal = MealCost*tipval;
return finalVal;
}
@end
视图控制器类中的导入语句
#import "Meal.h";
调用方法 Meal *meal = [[Meal alloc] init];
这是发生错误的地方"没有可见的膳食@interface声明选择器计算提示"
float finalFloat = [meal CalculateTip:MealCostFloat:select];
您已经声明了一个名为 CalculateTip:secondValue:
的方法。
但你试图将其称为:
[meal CalculateTip:MealCostFloat:select];
它需要像这样:
[mean CalculateTip:firstValue secondValue:theOtherValue];
其中firstValue
和theOtherValue
是需要传递给方法的两个变量或常量。
也许你的两个价值观是MealCostFloat
和select
.很难说。
[mean CalculateTip:MealCostFloat secondValue:select];
而且,如注释中所述,标准命名约定是方法和变量名称以小写字母开头。类名以大写字母开头。
并且不要导入 .m 文件,只导入 .h 文件。
最后一件事。鉴于您如何使用 SelectedValue
参数的值,我建议将其类型从 float
更改为 int
。
- (float)calculateTip:(float)mealCost secondValue:(int)selectedValue
{
float tipval = 0;
if (selectedValue == 0)
{
tipval = .1;
}
else if (selectedValue == 1)
{
tipval = .15;
}
else if (selectedValue == 2)
{
tipval = .2;
}
float finalVal = mealCost * tipval;
return finalVal;
}