iOS向数组添加动态值

Posted

技术标签:

【中文标题】iOS向数组添加动态值【英文标题】:iOS Adding Dynamic Values to Array 【发布时间】:2015-04-17 03:02:07 【问题描述】:

我想在 for 循环中初始化的数组中添加 UIImage 的动态值,所以我创建了一个 NSMutableArray 来首先在 for 循环中设置对象,然后尝试从中检索值。 请你看看我哪里出错了,在添加动态值时最好的方法是什么。

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];             

【问题讨论】:

您的问题到底是什么?什么不符合您的预期? 当它应该是 UIImage 时,你不是想从 dic 中获取 NSString 吗? 【参考方案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 的名称“image1, image2”等,你可以这样做:

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"];

(没有测试这些,但它是相当标准的)。

【讨论】:

以上是关于iOS向数组添加动态值的主要内容,如果未能解决你的问题,请参考以下文章

动态获取js对象的元素

在 iOS 中使用 UITextField 条目作为数组

动态数组进阶

js数组添加元素

如何从 UserDefaults 向数组添加值?

向php数组中已经存在的值添加值[关闭]