首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS中的函数返回

iOS中的函数返回
EN

Stack Overflow用户
提问于 2015-02-21 15:00:46
回答 2查看 87关注 0票数 0

我是iOS的新手,我正在努力弄清楚如何将代码的一部分更改为2,而不是2(如果可能的话)(如果可能的话,int和double)。我理解代码的作用,但不知道如何实现多个返回?

代码语言:javascript
复制
-(int)findmaxpos:(double*)array l:(int)length s:(int)start e:(int)end{
// Find array ending point to avoid exception
int new_end = MIN(end,length-1);
// Find array mean
double mean = 0;
for (int i = start; i<= new_end; i++){
    mean += array[i];
}
mean = mean / (new_end-start+1);
// Calculate variance
double var = 0;
for (int i = start; i<= new_end; i++){
    var += pow((array[i] - mean),2);
}
var = var / (new_end-start+1);
double sd = sqrt(var);
// Calculate limit add 2.5* standart deviation to get approximatelly 95% of the values
double limit = mean + (2.5 * sd);
// Find first position above limit
int pos = -1;
while (pos<0) {
    for (int i=start; i<=new_end; i++) {
        if (array[i]>=limit){
            pos = i;
            break;
        }
    }
    limit = limit * 0.9;
}
double max =array[pos];
// Check neibouring 10 positions to find a value greater than current.
for (int i=MAX(pos-5,start); i<=MIN(new_end,pos+5); i++) {
    if (array[i]>=max){
        max = array[i];
        pos = i;
    }
}
// Return value
//cast max as double??
return pos; //20/02 max inclusion

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-21 15:32:58

确实,目标C不允许返回多个值。您可以使用NSArray返回多个值,但我个人更喜欢NSDictionary。就像。

代码语言:javascript
复制
- (NSDictionary*)doSomeTaskAndReturnMultipleValues {
//Do some task let's say you have some objects to return named a,b,c
return @{@"key1":a, @"key2":b, @"key3":c};
}

这允许您根据键值对返回值,而不是取决于返回值的顺序,这很容易出错。

如果仍然需要,则可以使用数组,如果知道需要按特定顺序返回值的话。

代码语言:javascript
复制
- (NSArray*)doSomeTaskAndReturnMultipleValues {
//Do some task let's say you have some objects to return named a,b,c
return @[a,b,c];
}

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-02-21 15:22:03

目标-C不允许多个返回值。这样做的标准方法是将两个返回值封装在一个数组中,比如NSArray,或者创建一个您将返回的自定义结构,该结构具有匹配的成员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28647203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档