Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java objective-c中的UIImageView数组_Java_Objective C_Arrays_Uiimageview - Fatal编程技术网

Java objective-c中的UIImageView数组

Java objective-c中的UIImageView数组,java,objective-c,arrays,uiimageview,Java,Objective C,Arrays,Uiimageview,我已经有很多看法了。。我想创建一个UIImageView数组,并使用上面的一个UIImageView为数组的每个元素赋值。。我怎样才能用目标c做到这一点?? 我用java做了如下操作: JLabel l1=new JLabel(); JLabel l2=new JLabel(); JLabel [] arrayOfLabels = new JLabel[2]; arrayOfLabel[0] = l1; arrayOfLabel[1] = l2; 我需要在objective c中做同样的事情。

我已经有很多看法了。。我想创建一个UIImageView数组,并使用上面的一个UIImageView为数组的每个元素赋值。。我怎样才能用目标c做到这一点?? 我用java做了如下操作:

JLabel l1=new JLabel();
JLabel l2=new JLabel();
JLabel [] arrayOfLabels = new JLabel[2];
arrayOfLabel[0] = l1;
arrayOfLabel[1] = l2;

我需要在objective c中做同样的事情。

使用您可以说的更现代的语法

UIImageView *view1;
UIImageView *view2;
// assuming they are already instantiated
NSMutableArray *arrayOfImageViews = [[NSMutableArray alloc] init];
[arrayOfImageViews addObject:view1];
[arrayOfImageViews addObject:view2];
NSArray *myViewArray=@[ view1, view2, view3 ];

为了更清晰,让我根据您的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;

希望这能对您有所帮助。

您在哪里有很多图像视图?它们是如何定义的?因此view1位于索引0,view2位于索引1的右侧??。。如果我想将索引1处的元素更改为view1呢??我的意思是如何访问特定的元素进行修改,即
[arrayOfImageViews replaceObjectAtIndex:1 with Object:view1]。请注意,数组包含指向真实对象的指针(例如view1、view2)。不能修改指针,只能替换。但是,您可以修改指针指向的元素。您可以使用
[arrayOfImageViews objectAtIndex:1]
图像数组[0]=l1也合法,更像java风格。只需使用ARC@nouf,当然,除非有很好的理由您不能。。。在这种情况下,当您不再需要它时,
[imagesArray release]
。和
[l1 release]
[l2 release]
将它们添加到阵列后。
    [imagesArray release];
    imagesArray = nil;