我有一个表格 View ,其中包含图像列表和图像缩略图(图像列表和缩略图是从 JSON 对象解析的),我将图像数据对象添加到 imagesArray 中,如下所示 -
ImageData *imageDataObject = [[ImageData alloc]initWithImageId:[[imageListArray
objectAtIndex:indexPath.row] imageId] imageData:imageData];
[imagesArray addObject:imageDataObject];
图像数据对象
@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;
}
}
根据您的编辑:
您拥有的是 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/