首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSMutableArray withObject(UIImageView *)

NSMutableArray withObject(UIImageView *)
EN

Stack Overflow用户
提问于 2010-04-10 13:11:06
回答 2查看 5.5K关注 0票数 1

我正在尝试用UIImageViews加载NSMutableArray。一切都很顺利。

不幸的是,当对象在可变数组中时,我不知道如何使用它们。

下面是一些代码:

代码语言:javascript
复制
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
NSMutableArray *array = [NSMutableArray new];
[array loadWithObject:(UIImageView *)imageView];
[imageView release];

这就是我所做的事情。这是我想要做的:

代码语言:javascript
复制
[array objectAtIndex:5].center = GCRectMake(0, 0);

但这并不管用。我该怎么做呢??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-10 13:38:51

好的,我会解释你遇到的问题。做你想做的事情的方法如下:

代码语言:javascript
复制
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
NSArray *array = [NSArray arrayWithObject:imageView];
[imageView release];
[[array objectAtIndex:0] setCenter:CGPointMake(0.0,0.0)];

首先,没有-[NSMutableArray loadWithObject:]方法。同样,对于您的示例,您甚至不需要可变数组。可变对象有自己的位置,但我通常会在有意义时尝试使用不可变对象;因此,我使用了NSArray

接下来,在将对象添加到数组中时,您永远不需要对对象进行类型转换。有几个原因导致你的例子不起作用:

  1. 您正在访问数组中的第六个(从一个开始)对象。在那个索引处有UIImageView的实例吗?
  2. 出于某种原因,getters和setters的点符号只有在编译器知道你要发送消息的对象的类型时才有效。因为从数组中出来的对象的类型在编译时是不清楚的,所以不能使用点表示法。相反,只要使用老式的Objective-C方法-发送语法(“括号和colons").
  3. Finally,it's 核心图形,而不是Gore图形:因此前缀是CG,而不是GC。此外,-[UIImageView setCenter:]接受CGPoint,而不是CGRect。所以你想要的函数是CGPointMake.

祝你好运!如果这有助于澄清一些事情,请让我知道。

票数 3
EN

Stack Overflow用户

发布于 2010-04-10 13:39:05

我认为你应该推荐NSMutableArray

然而,我只是给出了NSMutableArray的概述。

  • NSMutableArray = Next Step (NS)可变数组
  • 可变意味着数组可以根据需要进行修改。
  • 现在,这个可变数组可以容纳我想要在数组中存储字符串的任何类型的数组。我会写以下语句。

NSMutableArray *anArray=[[NSMutableArray alloc] init];

[anArray addObject:@"Sagar"];

[anArray addObject:@"pureman"];

[anArray addObject:@"Samir"];

  • 这里,我发现你需要在你的requirements.

中存储imageViews

NSMutableArray *anArray=[[NSMutableArray alloc] init];

UIImageView *imgV1=[[UIImageView alloc] initWithFrame:CGRectMake(10,50,60,70)];

UIImageView *imgV2=[[UIImageView alloc] initWithFrame:CGRectMake(10,110,60,70)];

UIImageView *imgV3=[[UIImageView alloc] initWithFrame:CGRectMake(10,170,60,70)];

UIImageView *imgV4=[[UIImageView alloc] initWithFrame:CGRectMake(10,210,60,70)];

[anArray addObject:imgV1];

[anArray addObject:imgV2];

[anArray addObject:imgV3];

[anArray addObject:imgV4];

  • 现在,将ImageViews添加到阵列后,释放图像视图,因为阵列具有保留计数。

[imgV1 release];

[imgV2 release];

[imgV3 release];

[imgV4 release];

上面的代码会将图片添加到NSMutableArray

  • When你使用的是一个数组中的一个图片,只需写下这个东西

UIImageView *x=[anArray objectAtIndex:0];

  • 希望上面的描述对你有用。如果你不理解,
  • 添加评论。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2612328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档