我有一个表视图,其中包含图像和图像缩略图列表(图像列表和缩略图是从JSON对象解析的),我正在将图像数据对象添加到imagesArray中,如下所示-
ImageData *imageDataObject = [[ImageData alloc]initWithImageId:[[imageListArray
objectAtIndex:indexPath.row] imageId] imageData:imageData];
[imagesArray addObject:imageDataObject];
ImageData对象
@property (nonatomic, strong) NSString* imageId;
@property (nonatomic, strong) NSData* imageData;
allImagesArray像这样
[ImageData object1,ImageData object2,....]
我想基于selectedImageId从此数组分配对象的imageData
UIImage* image =[[UIImage alloc] initWithData:........];
我无法考虑一种基于selectedImageId来获取该imageData的方法
请帮忙。
更新-
谢谢大家的帮助,我能做到。
最佳答案
一种可能的方法是,遍历数组,从字典中找到selectedImageId
并使用它。
例:
ImageData *imageDataObject = nil;
for(int i=0; i<allImagesArray.count;i++){
NSDictionary *dict= allImagesArray[i];
imageDataObject = [dict objectForKey:selectedImageId];
if(imageDataObject != nil){
UIImage* image =[[UIImage alloc] initWithData:........];
//do whatever
break;
}
}
按照您的 EDIT :
您拥有的是一个ImageData对象数组[ImageData1,ImageData2,...]。对于每个ImageData对象,您都有
imageId
和imageData
属性,而您想要的只是将selectedImageId
与此imageId
进行比较,并从中获取imageData
。因此,在
PPImageViewController
中,您可以像这样迭代allImagesArray
并获取imageData。 for(ImageData* imgDataObj in self.allImagesArray){
if([imgDataObj.imageId isEqualToString:self.selectedImageId]){
UIImage* image =[[UIImage alloc] initWithData:imgDataObj.imageData];
}
}
关于ios - NSMutableArray内部的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19920393/