iphone – 从Objective-C中的方法返回多个值

我问了一个类似的问题,但我无法正常工作。我正在构建一个iPhone应用程序,并且有一种我想从不同文件中调用的方法。我想,最简单的方法只是在另一个文件中创建一个方法,并从其他文件调用方法。

这里有一些问题。我需要从方法返回多个值,然后传递多个值。例如,我传递它:(int,int,int,string,string)。在更改后,它需要返回所有这些值。有人向我显示了这段代码:

- (NSDictionary *)EndOfTurn:(int)varTurns withFatness:(int)varFatness
{
    varTurns--;

    if (varTurns <= 0) {
        varFatness = varFatness - 5;
    }
    else {
        varFatness += 2;
    }

    return [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:varFatness], @"FATNESS", [NSNumber numberWithInt:varTurns], @"TURNS", nil];

}

但是,这段代码不起作用,我需要更多的信息才能真正理解它。让我们假设我传递这些值:

int varMoney;
int varNumSheep;
int varNumShepherds;
NSString *test1;
NSString *test2;

所以我需要从方法中获取所有这些值。

如何在头文件中声明这一点?这应该在一个Objective-C文件中,但是你可以给我整个文件的代码,以便我可以看到它将与@implementation和@end一起去哪里。另外,我怎么称这个方法?

由于您只能从C和C派生语言中的任何方法返回单个值,所以您只需返回一个代表所有其他值的值。这是你的示例代码使用NSDictionary做的。

示例代码是正确的,即使它与普通Objective-C样式有点相反。

您在头文件中声明的只是方法的声明,即:

@interface MyClass : NSObject
- (NSDictionary *)EndOfTurn:(int)varTurns withFatness:(int)varFatness;
@end

在源文件中,然后:

@implementation MyClass
// code, as given above
@end
翻译自:https://stackoverflow.com/questions/1692005/returning-multiple-values-from-a-method-in-objective-c

转载注明原文:iphone – 从Objective-C中的方法返回多个值