2010-11-20 9 views
0

J'essaie d'envoyer un message avec plusieurs objets, mais je n'arrive pas à le faire fonctionner. Cela fonctionne parfaitement en utilisant un message (objectsArray) mais pas les deux.envoyer des messages à des objets

PlayerData.h:

- (void)savePlayerData:(NSArray *)objectsArray andKey:(NSString *)keyString; 

PlayerData.m:

- (void)savePlayerData:(NSArray *)objectsArray andkey:(NSString *)keyString { 

Ce qui suit est l'endroit où je tente d'appeler PlayerData d'un autre .m:

NSString *keyString = [[NSString alloc] init]; 
    keyString = @"key test"; 
    PlayerData *accessPlayerDataFunction = [PlayerData new]; 
    [accessPlayerDataFunction savePlayerData:objs andKey:keyString]; 

obj est le NSArray.

L'erreur que je reçois est:

avertissement: mise en œuvre incomplète d'avertissement de classe 'PlayerData' : définition de la méthode pour '-savePlayerData: andKey:' not found

+1

Notez que vous pouvez mettre en forme des lignes en tant que code en les indentant quatre espaces. Le bouton "101 \ n010" dans la barre d'outils de l'éditeur le fait pour vous. Cliquez sur le point d'interrogation orange dans la barre d'outils de l'éditeur pour plus d'informations et des conseils sur le formatage. – outis

Répondre

4

Le problème est que vous avez une faute de frappe dans votre nom de sélecteur dans l'implémentation (le fichier ".m").

dans l'en-tête que vous écrivez andKey (cas chameau)

(void)savePlayerData:(NSArray *)objectsArray andKey:(NSString *)keyString; 

et dans la mise en œuvre que vous avez andkey (aucun cas de chameau)

(void)savePlayerData:(NSArray *)objectsArray andkey:(NSString *)keyString 

En dehors de cela vous fuite de mémoire :

NSString *keyString = [[NSString alloc] init]; 
keyString = @"key test"; 

En affectant @ "test de clé" à votre variable, vous perdez la référence à l'objet d'origine auquel vous avez attribué la ligne auparavant. Vous pouvez simplement assigner @ "key test" à keyString.

+0

la fuite avec keyString je nouveau et l'utilise uniquement pour les tests. – PeterK

+0

l'explication de l'affaire de chameau j'ai peur je ne comprends pas. n'est pas andKey un cas de chameau? J'apprécierais vraiment que vous puissiez expliquer la réponse un peu plus. – PeterK

+0

oui andKey est un étui camel. Vous utilisez chameau dans le fichier .h et pas de chameau dans le fichier .m. C'est pourquoi le compilateur ne peut pas trouver l'implémentation. Comme C, Objective-C est sensible à la casse. –

Questions connexes