2010-04-25 5 views
1

Je tente de mettre la valeur associée à la clé appelée "duration" dans un UILabel mais un résultat vide ou "(null)" s'affiche dans le UILabel.Problème lors de l'obtention de NSString de la clé NSDictionary dans UILabel

Mon objet NSDictionary avec ses clés semble se connecter comme étant complète des données et des clés, je pense que je veux, en tant que tel:

Le contenu de ce RecordingsStats sont:

{ 
    "12:48:25 AM, April 25" = { 
      FILEPATH = "/Users/brian/Library/Application Support/iPhone Simulator/3.1.3/Applications/97256A91-FC47-4353-AD01-15CD494060DD/Documents/12:48:25 AM, April 25.aif"; 
    duration = "00:04"; 

applesCountString = 0; 

.. .etc.

est ici le code où je suis en train de mettre le NSString dans le UILabel:

cell.durationLabel.text = [NSString stringWithFormat:@"%@",[thisRecordingsStats objectForKey:@"duration"]];

J'ai aussi essayé ces permutations:

cell.durationLabel.text = [thisRecordingsStats objectForKey:@"duration"];

et I » J'ai également essayé cette approche par tag:

label = (UILabel *)[cell viewWithTag:8]; 
label.text = [[thisRecordingsStats objectForKey:@"duration"] objectAtIndex:1]; 

et:

UILabel *label; 
     label = (UILabel *)[cell viewWithTag:8]; 
     label.text = [NSString stringWithFormat:@"%@",[[thisRecordingsStats objectForKey:@"duration"] objectAtIndex:1]]; 

J'ai aussi essayé de créer une chaîne de valeur de la paire clé et voir un « (null) » valeur ou blankness en utilisant aussi.

Qu'est-ce qui me manque? Je suppose que c'est quelque chose avec le formatage de la chaîne. Merci d'avoir regardé !!

+0

Définir un point d'arrêt sur la ligne où vous configurez le texte. À l'invite gdb dans votre console, tapez po [thisRecordingsStats objectForKey: @ "duration"]. Que vois-tu? – cduhn

+0

Quand j'entrez: po [thisRecordingsStats objectForKey: @ "durée"] ou lorsque vous essayez la réponse suggérée ci-dessous: po [statistiques objectForKey: @ "durée"] Je vois: ne peut pas accéder à la mémoire à l'adresse 0x0 – Brian

+0

En fait maintenant je vois ma chaîne là. Je vous remercie pour cela, bien que la réponse ci-dessous m'a essayé d'imbriquer une clé dynamique qui est la clé de date du fichier tronqué ... – Brian

Répondre

2

je pourrais être l'arme un sautais peu, mais de l'apparence de votre sortie du journal de votre NSDictionary est réglé comme ayant « 0:48:25, le 25 Avril » comme la clé, avec un autre NSDictionary sa valeur .

à savoir

"12:48:25 AM, April 25" => NSDictionary (
           FILEPATH => (value) 
           duration => @"00:04" 
          ) 

etc.

Ce que vous devez faire est de: -

NSDictionary *stats = [thisRecordingsStats objectForKey:@"12:48:25 AM, April 25"]; 
cell.durationLabel.text = [stats objectForKey:@"duration"]; 
+0

Vous avez raison: j'ai un dictionnaire rempli de dictionnaires, car je voulais que les statistiques de chaque enregistrement soient accessible par sa chaîne de date d'origine tronquée. Il semble maintenant que mon problème est de mettre dans le code qui insère la clé dynamique basée sur la clé de date pour chaque dictionnaire. En ce moment j'ai quelque chose comme ceci renvoyant des erreurs: \t NSDictionary * stats = [thisRecordingsStats objectForKey: @ "% @", [[self.fileList objectAtIndex: [ligne indexPath] lastPathComponent] stringByDeletingPathExtension]]; mais je vais faire une nouvelle question. Merci pour votre temps. – Brian

Questions connexes