0

我已经有很多 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 中做同样的事情。

4

4 回答 4

1
UILabel * l1 = [[UILabel alloc] init];
UILabel * l2 = [[UILabel alloc] init];
NSMutableArray * arrayOfLabels = [NSMutableArray arrayWithCapacity:2];
arrayOfLabels[0] = l1;
arrayOfLabels[1] = l2;
于 2013-07-20T22:27:01.030 回答
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;

希望这会对你有所帮助。

于 2013-07-20T23:03:05.543 回答
0
UIImageView *view1;
UIImageView *view2;
// assuming they are already instantiated
NSMutableArray *arrayOfImageViews = [[NSMutableArray alloc] init];
[arrayOfImageViews addObject:view1];
[arrayOfImageViews addObject:view2];
于 2013-07-20T22:25:26.447 回答
0

使用更现代的语法,你可以说

NSArray *myViewArray=@[ view1, view2, view3 ];
于 2013-07-20T22:31:59.187 回答