2010-12-09 5 views
2

Je suis semi-nouveau à Objective-c et confus avec pourquoi mon NSMutableDictionary ne retient pas l'information. Je déclare ma variable dans le fichier d'en-tête:NSMutableDictionary ne retient pas les valeurs

@interface view_searchResults : UIViewController <UITableViewDataSource, UITableViewDelegate> { 
    NSMutableDictionary *imageDicationary; 
} 

@property (nonatomic, retain) NSMutableDictionary *imageDictionary; 

Puis dans mon fichier .m, je donne les résultats suivants:

@synthesize imageDictionary; 

-(UIImage *)getImageForURL:(NSURL*)url { 

    UIImage*image; 
    image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]]; 
    [imageDictionary setObject:image forKey:@"test"]; 

    if([imageDictionary objectForKey:@"test"]){ 

     NSLog(@"Exists"); 

    } 

} 

Il est évidemment tout autre code à l'appui, mais je peux confirmer que une URL est en cours de transmission et le fichier est téléchargé correctement ailleurs. En outre, je peux confirmer que cette fonction est en cours d'exécution, et je ne fais référence à NSMutableDictionary nulle part ailleurs dans le document.

Merci!

Répondre

5

Où créez-vous votre dictionnaire NSMutable? Si cela est vraiment tout le code que vous avez, vous devez créer le dictionnaire:

@implementation view_searchResults 
- (id) init;{ 
    self = [super init]; 
    if(self) { 
     imageDicationary = [NSMutableDictionary alloc] init]; // should also be released in dealloc. 
    } 
    return self; 
} 

Si cela est l'erreur, la raison pour laquelle vous n'êtes pas l'origine d'un accident est parce que dans Objective-C il est valable d'envoyer un message à l'objet nul - cela ne fait rien.

+0

Génial! Merci beaucoup. J'ai supposé que la définition initiale était suffisante, mais ce n'était évidemment pas le cas. C'est un long chemin de PHP à Objective-C. Merci encore pour votre aide! –

+1

Pas de problème. Veuillez me marquer comme la bonne réponse :-) notez également que j'ai édité le code que j'ai fourni. –

1

Vous ne nous avez pas dit si le fichier "Existe" NSLog est exécuté, vous ne renvoyez PAS l'image.

En d'autres termes, je ne vois pas votre problème

0

a-t-imageDictionary été initialisé? (alloc/init?)

Questions connexes