2010-03-12 7 views
0

J'ai Codechaîne objectif C Confusion

NSString *cellValue1 = [products1 objectAtIndex:indexPath.row]; 

lorsque je tente d'imprimer NSLog(@"cell value is %@",cellValue1);

dans le journal que je ne reçois pas quoi que ce soit, si j'utilise% s, je reçois des symboles, non la chaîne située dans cellValue1.

S'il vous plaît aidez-moi.

Merci d'avance.

+0

% @ est correct pour l'impression d'un NSString; % s est pour une chaîne C (char *). –

+0

Pouvez-vous ajouter le code qui ajoute les objets à products1? – mmccomb

Répondre

1

Assurez-vous que products1 est bien défini. Il semble que c'est nul quand vous lui envoyez le message -objectAtIndex:.

+0

Non, NSLog display '(null)' lorsque vous essayez de consigner une valeur nulle en tant qu'objet. – Macmade

+0

Le questionneur n'a pas précisé qu'ils * ne voyaient pas (null) (leur interprétation de voir nul peut les amener à dire qu'ils n'obtiennent rien, puisque null traduit techniquement rien à dire.) ... Juste mon deux centimes. – Jasarien

+0

lol c'est vrai;) – Macmade

1

Cela signifie sûrement votre chaîne est vide ... Vérifiez avec la méthode de longueur ...

-1

Solution:

NSString *cellValue1 = [products1 objectAtIndex:indexPath.row]; 
NSLog([NSString stringWithFormat:@"Cell Value is %@", cellValue1]); 

Raison: NSLog fonctionne avec des entrées de chaîne. Tandis que votre instruction devrait fonctionner, s'il y a un/un problème avec votre chaîne cellValue1 d'origine, votre instruction originale n'attrapera pas le problème et s'assurera que NSLog() reçoit une chaîne pure. En utilisant la syntaxe stringWithFormat: vous assurez que même si vos valeurs cellValue1 sont nulles ou nulles, vous recevrez votre "valeur de la cellule est" commentaire et éventuellement un indice sur ce qui est passé dans l'instruction par votre chaîne cellValue1.

Test Note: Si le dessus ne fonctionne pas pour vous, Testez votre chaîne d'origine en utilisant simplement NSLog(cellValue1);. Si cela ne fonctionne pas, il vous indiquera que votre NSString d'origine ne tire pas correctement votre produit sur les valeurs indexPath.row.

Espérons que cela aide!

+0

-1 N'utilisez jamais de non-littéraux comme chaînes de format. –

+0

@ Nikolai, L'exemple de code a été fourni pour aider l'utilisateur "Run-Down" une solution possible pour le problème en s'assurant qu'il obtenait une chaîne réelle. Merci pour le point de downgrade! – Newbyman