我已经有了很多UIImageViews ..我想创建一个UIImageViews数组,并用上面的一个UIImageViews分配数组的每个元素。我怎么能用目标c? 我在java中做了如下:
JLabel l1=new JLabel();
JLabel l2=new JLabel();
JLabel [] arrayOfLabels = new JLabel[2];
arrayOfLabel[0] = l1;
arrayOfLabel[1] = l2;
我需要在目标c中做同样的事情。
答案 0 :(得分:1)
UILabel * l1 = [[UILabel alloc] init];
UILabel * l2 = [[UILabel alloc] init];
NSMutableArray * arrayOfLabels = [NSMutableArray arrayWithCapacity:2];
arrayOfLabels[0] = l1;
arrayOfLabels[1] = l2;
答案 1 :(得分:1)
让我根据你的Java声明回答你,以便更清晰:
//Java:
JLabel l1=new JLabel();
//Objective C:
UIImageView * l1= [[UIImageView alloc] init];
//Java:
JLabel l2=new JLabel();
//Objective C:
UIImageView * l2 = [[UIImageView alloc] init];
//Java
JLabel [] arrayOfLabels = new JLabel[2];
//Objective C
NSMutableArray * imagesArray = [[NSMutableArray alloc] init];
//Java
arrayOfLabel[0] = l1;
//Objective C
[imagesArray addObject:l1];
//Java
arrayOfLabel[1] = l2;
//Objective C
[imagesArray addObject:l2];
由于您没有使用ARC(我从您的评论中猜到了),因此您必须手动释放内容作为内存管理的一部分:
[l1 release]; //After adding it to imagesArray
[l2 release]; //After adding it to imagesArray
在您不需要时释放imagesArray
。通常它是在dealloc()
中完成的,但您可以通过简单地调用以下内容在任何不需要它的地方释放它:
[imagesArray release];
imagesArray = nil;
希望这对你有帮助。
答案 2 :(得分:0)
UIImageView *view1;
UIImageView *view2;
// assuming they are already instantiated
NSMutableArray *arrayOfImageViews = [[NSMutableArray alloc] init];
[arrayOfImageViews addObject:view1];
[arrayOfImageViews addObject:view2];
答案 3 :(得分:0)
使用更现代的语法,您可以说
NSArray *myViewArray=@[ view1, view2, view3 ];