2013-07-20 5 views
0

이미 많은 UIImageViews가 있습니다. UIImageViews의 배열을 만들고 위의 UIImageViews 중 하나를 사용하여 배열의 모든 요소를 ​​지정하고 싶습니다. 어떻게 객관적인 C로 그 작업을 수행 할 수 있습니까? ?objective-c에있는 UIImageViews의 배열

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

내가 객관적 C에서 같은 일을 할 필요가 ...

+0

어디에서 많은 이미지 뷰를 보유하고 있습니까? 어떻게 정의됩니까? – Wain

답변

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; 

희망 그래서 이것은 당신을 도울 것입니다.

+0

감사합니다 .. 어디에서 배열을 풀겠습니까 ?? – nouf

+0

'imagesArray [0] = l1'도 적당합니다. java-esque입니다. –

+1

물론 ARC @nouf를 사용하십시오. 물론 더 이상 필요하지 않을 경우에는 ... [imagesArray release]'할 수없는 정말 좋은 이유가 있습니다. '[l1 release]'와'[l2 release]'를 배열에 추가하면된다. –

0
UIImageView *view1; 
UIImageView *view2; 
// assuming they are already instantiated 
NSMutableArray *arrayOfImageViews = [[NSMutableArray alloc] init]; 
[arrayOfImageViews addObject:view1]; 
[arrayOfImageViews addObject:view2]; 
+0

그래서 view1은 인덱스 0에 있고 view2는 인덱스 1에 있습니다. ?? .. 그러면 index1의 요소를 view1로 변경하고 싶습니다. ?? 나는 수정을 위해 특정 요소에 어떻게 접근 할 수 있는가를 의미한다. ?? – nouf

+0

'[arrayOfImageViews replaceObjectAtIndex : 1 with Object : view1];'이 될 것입니다. 배열에는 실제 객체에 대한 ** 포인터 **가 포함됩니다 (예 : view1, view2). 포인터는 수정할 수 없으며 바꾸기 만 할 수 있습니다. 그러나 포인터가 가리키는 요소를 수정할 수 있습니다. 당신은'[arrayOfImageViews objectAtIndex : 1]' –

+0

토마스에게 감사 할 수 있습니다. – nouf

1
UILabel * l1 = [[UILabel alloc] init]; 
UILabel * l2 = [[UILabel alloc] init]; 
NSMutableArray * arrayOfLabels = [NSMutableArray arrayWithCapacity:2]; 
arrayOfLabels[0] = l1; 
arrayOfLabels[1] = l2; 
0

더 현대적인 구문을 사용하면

말할 수있다 : 나는 다음과 같은 자바를했다
NSArray *[email protected][ view1, view2, view3 ]; 
관련 문제