我有一个表视图,其中包含图像和图像缩略图列表(图像列表和缩略图是从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对象,您都有imageIdimageData属性,而您想要的只是将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/

10-13 04:01