我正在尝试声明一个具有多个输入和输出参数的方法。 我有多个输入参数声明没有问题,如下所示:
- (float)tCorrection:(float)t2 tCableBase:(float)t1 CableMaterial: (NSString*)CopperOrAl;
在这种情况下,我们有3个输入参数(不同类型)和一个浮点返回类型。
我的问题是如何声明一个具有多于1个返回参数的函数。我尝试了不同的语法,但没有运气。
感谢任何帮助。
答案 0 :(得分:1)
首先,您的方法名称实际上是次优的。而不是:
- (float)tCorrection:(float)t2 tCableBase:(float)t1 CableMaterial: (NSString*)CopperOrAl;
我会建议像:
- (float)applyCorrection:(float)correction toCableBase:(float)cableBase withCableMaterial:(CableMaterial)material;
您将CableMaterial
定义为枚举类型的材料。
接下来,要回答您的问题, 可以使用 duDE 建议。
但是,不要。闻起来像糟糕的设计。
相反,它听起来确实需要一个类,其实例可以配置各种参数,然后查询以获得计算结果。这将产生更清洁的应用程序设计。
我会想象像Cable
类这样的类具有material
,base
,correction
等属性......然后是各种readonly
属性计算各种所需的值。
答案 1 :(得分:0)
通常没有任何返回多个值的方法语法但是如果您有多个值并且想要返回它,那么创建NSMutableArray
或NSMutableDictionary
这对返回多个值很有用。
喜欢这样,
- (NSMutableArray *)tCorrection:(float)t2 tCableBase:(float)t1 CableMaterial: (NSString*)CopperOrAl;
{
NSMutableArray *temArray = [[NSMutableArray alloc] init];
[temArray addObject:[NSString stringWithFormat:@"%f", t2]];
[temArray addObject:[NSString stringWithFormat:@"%f", t1]];
[temArray addObject:[NSString stringWithFormat:@"%@", CopperOrAl]];
return temArray;
}
从返回数组获得值
NSMutableArray *returnArray = [self tCorrection:2.5 tCableBase:23.5 CableMaterial:@"MyString"];
NSLog(@"%@", returnArray);
答案 2 :(得分:0)
返回多个值的推荐方法是:
通常不应使用传递引用方法并且主要使用
NSError**
。