我问了一个类似的问题,但我无法正常工作。我正在构建一个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
相关文章
转载注明原文:iphone – 从Objective-C中的方法返回多个值 - 代码日志