Retourner plusieurs valeurs à partir d'une méthode Objective-C

J'ai posé une question similaire, mais je ne pouvais pas le faire exactement. Je suis en train de construire une application iPhone, et il y a une méthode que je veux appelée à partir de différents fichiers. J'ai pensé que le plus simple serait tout simplement de faire une méthode dans un autre fichier, et d'appeler la méthode à partir d'autres fichiers.

Voici quelques problèmes. J'ai besoin de retourner plusieurs valeurs à partir de la méthode, après le passage de plusieurs valeurs. Par exemple, je suis le passant: (int, int, int, string, string). Et il a besoin de retourner toutes ces valeurs, après qu'ils ont été modifiés. Quelqu'un m'a montré ce code:

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

}

Toutefois, ce code ne fonctionne pas, et j'ai besoin de quelques informations pour vraiment le comprendre. Disons que je suis de passage, ces valeurs:

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

J'ai donc besoin d'obtenir l'ensemble de ces valeurs de retour de la méthode.

Comment dois-je le déclarer dans le fichier d'en-tête? Cela devrait être un Objectif-C fichier, mais pourriez-vous me donner le code pour la totalité du fichier pour que je puisse voir où il serait aller avec le @implementation et @end, que sais-je encore. Aussi, comment pourrais-je appeler cette méthode?

  • Je tiens à souligner que "withFatness' est génial d'une fonction.
  • vous aurez également besoin de conserver le résultat de cette fonction. Parce que le dictionnaire que vous êtes de retour est à partir d'une méthode de convenance, il est autoreleased, et disparaîtra peu de temps si pas conservé. c'est à dire lorsque vous l'appelez-vous feriez quelque chose comme ceci: NSDictionary *myDic = [self EndOfTurn:tourne withFatness:gras]; [myDic retain];
  • et puis [myDic release]; lorsque vous êtes bon et fait avec elle.
  • Je ressens cette envie de marquer votre variable convention de nommage. 🙂
InformationsquelleAutor Ethan Mick | 2009-11-07