2010-12-09 8 views
2

Ich bin halb neu zu Objective-c und verwirrt mit, warum mein NSMutableDictionary Informationen nicht behält. Ich meine Variable in der Header-Datei erklärt:NSMutableDictionary nicht Werte beibehalten

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

@property (nonatomic, retain) NSMutableDictionary *imageDictionary; 

Dann in meiner .m-Datei, ich habe folgendes:

@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"); 

    } 

} 

Es gibt offensichtlich einen anderen Code, dies zu unterstützen, aber ich kann bestätigen, dass Eine URL wird übergeben und die Datei wird an anderer Stelle korrekt heruntergeladen. Außerdem kann ich bestätigen, dass diese Funktion ausgeführt wird, und ich verweise auf das NSMutableDictionary nirgendwo sonst in dem Dokument.

Danke!

Antwort

5

Wo erstellen Sie Ihr NSMutable-Wörterbuch? Wenn dies wirklich der gesamte Code ist, müssen Sie das Wörterbuch erstellen müssen:

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

Wenn dies der Fehler ist dann der Grund, warum Sie nicht einen Absturz verursachen, weil in Objective-C es gültig ist, eine Nachricht senden zum nil object - es tut einfach nichts.

+0

Super! Vielen Dank. Ich nahm an, dass die Definition anfänglich ausreichend war, aber das war offensichtlich nicht der Fall. Es ist ein langer Weg von PHP zu Objective-C. Danke nochmal für die Hilfe! –

+1

Kein Problem. Bitte markieren Sie mich als die richtige Antwort :-) Beachten Sie auch, dass ich den Code, den ich zur Verfügung gestellt habe, bearbeitet habe. –

1

Sie haben uns nicht gesagt, ob der "Exists" NSLog ausgeführt wird, Sie geben auch das Bild NICHT zurück.

Mit anderen Worten, ich nicht Ihr Problem

0

Hat imageDictionary initialisiert, um zu sehen? (alloc/init?)

Verwandte Themen