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



我有一个包含 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];      
}

图库打印结果:

{ 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; }

正在浏览您的日志。在我看来,galleryResult是一个带有包含字典数组的键data的字典。

您可能希望访问密钥中存在的数据data

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

变量库结果真的是一个 NSDictionary?int 不能成为 NSDictionary 的键

打印库结果的所有键。 如果密钥是 NSNumber,请使用

mediadict = galleryResult[@(labelTag)];

如果密钥是 NSString,请使用

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

最新更新