如何为 NSMutableArray 中包含的 UIImageView 设置图像?

发布于 2024-12-17 23:59:12 字数 311 浏览 0 评论 0原文

我有包含 UIImageViews 的 NSMutableArray 和包含 UIImages 的 NSArray 。数组大小相等。我需要将第二个数组中的图像设置为第一个数组。在循环中实现它会非常方便,例如:

for (int i = 0;i < firstArray.count;i++)
  [firstArray objectAtIndex:i].image = [secondArray objectAtIndex:i];

但这不能编译。它说“在类型“id”的对象上找不到属性“image”。是否可以以某种方式在循环中实现它?

I have NSMutableArray containing UIImageViews and NSArray containing UIImages. The arrays are of equal size. I need to set images from the second array to the first one. It would be very convinient to implement it in loop, something like:

for (int i = 0;i < firstArray.count;i++)
  [firstArray objectAtIndex:i].image = [secondArray objectAtIndex:i];

but that doesn't compile. It says "Property "image" not found on object of type "id". Is it possible to implement it in loop somehow?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风月客 2024-12-24 23:59:12

在访问其属性之前,您需要从 id 类型转换为 UIImageView 类型。使用以下...

for (int i = 0;i < firstArray.count;i++)
  ((UIImageView *)[firstArray objectAtIndex:i]).image = [secondArray objectAtIndex:i];

You need to cast from the id type to a UIImageView before accessing properties on it. Use the following...

for (int i = 0;i < firstArray.count;i++)
  ((UIImageView *)[firstArray objectAtIndex:i]).image = [secondArray objectAtIndex:i];
别挽留 2024-12-24 23:59:12

或者,如果添加所有这些圆括号会使阅读变得更加困难(就我个人而言,它太吸引我的注意力),您可以这样做:

UIImageView *imageView = nil;

for (int i = 0;i < firstArray.count;i++) {
   imageView = [firstArray objectAtIndex:i];
   imageView.image = [secondArray objectAtIndex:i];
}

或者

for (int i = 0;i < firstArray.count;i++)
    [[firstArray objectAtIndex:i] setImage:[secondArray objectAtIndex:i]];

Alternatively if adding all of those round brackets makes it harder to read, (personally it draws my eye too much) you can do:

UIImageView *imageView = nil;

for (int i = 0;i < firstArray.count;i++) {
   imageView = [firstArray objectAtIndex:i];
   imageView.image = [secondArray objectAtIndex:i];
}

OR

for (int i = 0;i < firstArray.count;i++)
    [[firstArray objectAtIndex:i] setImage:[secondArray objectAtIndex:i]];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文