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向数组添加动态值的主要内容,如果未能解决你的问题,请参考以下文章