gpt4 book ai didi

ios - iOS 中的函数返回

转载 作者:行者123 更新时间:2023-11-29 02:16:58 25 4
gpt4 key购买 nike

我是 iOS 的新手,我正在尝试弄清楚如何更改部分代码以获得 2 个返回值而不是一个返回值(如果可能,还有 int 和 double)。我明白代码的作用,但我不知道如何实现多次返回?

-(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

最佳答案

客观 C 确实不允许返回多个值。你可以使用 NSArray 返回多个值,但我个人更喜欢 NSDictionary。例如。

- (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};
}

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

如果您仍然想要,您可以使用数组,如果您知道您想要按特定顺序返回值。

- (NSArray*)doSomeTaskAndReturnMultipleValues {
//Do some task let's say you have some objects to return named a,b,c
return @[a,b,c];
}

希望这对您有所帮助。

关于ios - iOS 中的函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28647203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com