读取“ NSDictionary *”类型的对象上找不到的数组元素的预期方法

时间:2018-10-12 05:46:59

标签: ios objective-c

我有一个包含10张图像的相册,我想在其中单击图像的详细信息。在这段代码中,galleryResult具有10张图像的所有详细信息,我正尝试将单击的图像的详细信息复制到变量mediaDict中。变量galleryResultmediaDct是一个字典。这样做时,我看到显示Expected method to read array element not found on object of type 'NSDictionary *的错误。

-(void)imageTapped:(UIGestureRecognizer*)gesture
{      
    UIView *photoImageView = (UIView *)gesture.view;
    int labelTag =(int) photoImageView.tag;
    mediadict = galleryResult[labelTag];
    [self presentGalleryWithImageAtIndex:photoImageView.tag];      
}

galleryResult打印:

{ data = ( { "comment_count" = 0; "dislike_count" = 0; "is_disliked" = 0; "is_liked" = 0; "like_count" = 0; "media_file_id" = 1366; "media_url" = "195/559812113_7511740_193F2CB1-CAA5-4A35-86B0-CAD0765FAFAD.jpg"; "media_url_thumb" = "195/thumb_559812113_7511740_193F2CB1-CAA5-4A35-86B0-CAD0765FAFAD.jpg"; "post_type" = MI; "userspost_id" = 26014; }

2 个答案:

答案 0 :(得分:0)

galleryResult变量真的是NSDictionary吗? Int不能成为NSDictionary的关键

打印galleryResult的所有键。 如果键是NSNumber,请使用

mediadict = galleryResult[@(labelTag)];

如果密钥是NSString,请使用

mediadict = galleryResult[[@(labelTag) stringValue]];

答案 1 :(得分:0)

正在查看日志。在我看来galleryResult是一本字典,键为data,其中包含一个字典数组。

您可能想访问data键中存在的数据。

请尝试[galleryResult["data"] objectAtIndex: labelTag]