我想添加從外部服務獲取的圖像到NSMutableDictionary並看到奇怪的結果。這是我在做什麼:使用UIImage不工作迭代NSMutableDictionary
- (void)fetchImages{
//Fetch Item Brand Images
//self.itemBrands is an NSArray of NSDictionaries
for (NSDictionary *itemBrand in self.itemBrands){
NSString *currentItemId = [itemBrand objectForKey:@"ITEM_ID"];
//Valid Item Id. This Log message is displayed
NSLog(@"Current Item Id: %@",currentItemId);
NSString *currentItemImageUrl = [[IMAGE_URL stringByAppendingString:currentItemId] stringByAppendingString:@".png"];
//Image URL is valid. This log message is displayed
NSLog(@"Current Image URL: %@",currentItemImageUrl);
NSURL *url = [NSURL URLWithString:currentItemImageUrl];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
if (image == nil){
//This log message is displayed when image is not present
NSLog(@"Image not Present 1");
}else{
//This log message is displayed when image is present
NSLog(@"Image Present 1");
[self.itemBrandImages setObject:image forKey:currentItemId];
}
}
//This for loop is not being executed at all. No log messages displayed.
for(id key in self.itemBrandImages){
NSLog(@"Current Item Id2: %@",key);
if ([self.itemBrandImages objectForKey:key] == nil){
NSLog(@"Image Not Present 2");
}else{
NSLog(@"Image Present 2");
}
}
}
for循環我在哪裏遍歷self.itemBrandImages第二屆未在所有執行。沒有內部的日誌消息正在顯示。
我想在這裏張貼了我的問題之前,以下內容:
1)研究類似的堆棧溢出,從其中的一個問題,並納入建議。建議是在.m文件的init方法中「執行NSMUtableDictionary的alloc init」。這也沒有幫助。
2)爲了找出問題,我甚至嘗試添加一個簡單的字符串到NSMUtableDictionary而不是圖像,但即使這似乎並沒有保留。
我真的很困惑,因爲我在這裏失蹤或做錯了。輸入真的很感激。
謝謝, 邁克·G
不' 「圖片當前第1張」'得到印?如果是這樣,是否'self.itemBrandImages'不同於'nil'? – yonosoytu
也許在兩個for循環之間顯示所有的NSLog輸出以及'NSLog(@「%@」,self.itemBrandImages)'。 –