2015-04-17 48 views
-2

我想在for循環中初始化的數組中添加UIImage的動態值,所以我創建了一個NSMutableArray以在for循環中首先設置對象,然後嘗試從中檢索值。 請你看看我哪裏出錯了,在添加動態值的時候應該選擇什麼最好的方法。iOS向數組添加動態值

NSMutableDictionary * dic= [[NSMutableDictionary alloc]init]; 
NSMutableArray *cImages = [[NSMutableArray alloc]init]; 

for(int i=0; i<5; i++) { 
    NSString * imageKey= [NSString stringWithFormat:@"image%i",i+1];    

    NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString: [[results objectAtIndex:i]valueForKey:imageKey]]]; 
    UIImage *imageOne = [UIImage imageWithData:imageData]; 
    [dic setObject:imageOne forKey:imageKey]; 

} 

for (NSString *key in dic) { 
    NSString *sprite = [dic objectForKey:key]; 
    //adding below to the array 
    [cImages addObject:sprite];    
} 
+1

究竟是什麼問題?什麼不符合你的期望? – p4sh4

+1

難道你不是試圖得到一個NSString應該是一個UIImage嗎? – JamesSugrue

回答

1

將UIImage添加到可變數組中會出現什麼問題?

NSMutableArray *cImages = [[NSMutableArray alloc]init]; 

for(int i = 0; i < 5; i++) 
{ 
    NSString *imageKey= [NSString stringWithFormat:@"image%i", i+1]; 
    UIImage *imageToAdd = [UIImage imageNamed:imageKey]; 
    [cImages addObject:imageToAdd]; 
} 

// Using the images 
for (UIImage *image in cImages) 
{ 
    // Do whatever u want with each image. 
} 

如果你確實需要使用一本詞典的名稱來訪問的UIImage的「圖像1,圖像2」等,你可以這樣做:

NSDictionary *dict = [[NSDictionary alloc] init]; 
for (int i = 0; i < 5; i++) 
{ 
    NSString *imageKey = [NSString stringWithFormat:@"image%i", i+1]; 
    UIImage *image = [UIImage imageNamed:@"nameOfImageFile.png"]; 
    [dict setObject:image forKey:imageKey]; 
} 

// Now you can access the UIImage values by their names (image1,image2,image3,image4,image5) 
UIImage *imageToUse = [dict valueForKey:@"image1"]; 

(沒有測試這些,但它是相當標準)。