2011-08-15 4 views
-1

J'utilise le code ci-dessous, il donne l'erreur:iOS donnant erreur d'affectation types de pointeur incompatibles

incompatible pointer types assignment to 'NSString *' 
to the parament of the 'NSString *'" where dataParameter is used. 

Voici le code:

- (id)initWithText:(NSString *)someText passedData:(animalsViewController *)dataParameter 
{ 

    NSLog(dataParameter); 
    self.title=dataParameter; 
    nowCountry=dataParameter; 

    return self; 
} 

Comment puis-je résoudre ce problème?

+1

Vous devriez vous en tenir aux conventions communes d'Objective-C et commencer les noms de vos classes avec des majuscules ('AnimalsViewController'). – DarkDust

+0

merci :) je suis très nouveau à cette langue .. je prendrai soin des conventions de nommage. –

Répondre

1

NSLog attend un paramètre de chaîne. Les arguments de mise en forme pour convertir dataParameter à un NSString:

NSLog(@"%@", dataParameter); 

Pour vos deux autres missions, il semble peu probable que vous souhaitez affecter un objet viewController à une propriété comme le titre qui est un NSString. Il est plus probable que vous souhaitez affecter une NSString propriété de dataParameter, quelque chose comme ceci:

self.title = dataParameter.title; 

ou:

nowCountry = dataParameter.country; 

Comme je ne sais pas quelles sont les propriétés d'un AnimalsViewController a, je suis deviner un nom de propriété, mais cela devrait illustrer le point.

+0

merci de résoudre l'erreur NSLog, mais comment puis-je résoudre pour self.title = dataParameter; et nowCountry = dataParameter; –

+0

Jetez un oeil à ma réponse mise à jour ... – highlycaffeinated

2

Vous traitez "dataParameter", qui est une instance de "animalsViewController" en tant que NSString. Cela ne fonctionne pas, vous ne pouvez affecter que des objets du même type.

Questions connexes