2012-10-14 4 views
3

NSMutableArrayUILabels으로 가득 차 있으며 array을 통해 단계별로 텍스트 특성을 수정하고 싶습니다. 나는 UILabels 또는 배열 외부에서 테스트 한대로 잘 레이블이 할당 된 원하는 함수를 생성하는 기능을 알고 있습니다. 그냥 배열의 내부에 UILabel 동안 수정 텍스트 속성을 얻을 것 같습니다.NSArray에서 UILabels의 텍스트 특성 수정

나는 배열은 다음과 같이 채운 : 뷰는로드

NSMutableArray *scrambledWordLabelArray; 

-(void)initUIArrays { 
    [scrambledWordLabelArray insertObject:ScrambledWordLabel1 atIndex:0]; 
    [scrambledWordLabelArray insertObject:ScrambledWordLabel2 atIndex:1]; 
    [scrambledWordLabelArray insertObject:ScrambledWordLabel3 atIndex:2]; 
    [scrambledWordLabelArray insertObject:ScrambledWordLabel4 atIndex:3]; 
    [scrambledWordLabelArray insertObject:ScrambledWordLabel5 atIndex:4]; 
    [scrambledWordLabelArray insertObject:ScrambledWordLabel6 atIndex:5]; 
} 

그리고 일단의 다른 기능에 의해 생성 된 문자열을 레이블 변경되어이 부분 I의 경우

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self initUIArrays]; 

    currentGameList = [self GetWordList:[self LoadWordlist]]; 

    for (NSUInteger i = 0; i < [currentGameList count]; i++) { 

을 두 가지 해결책을 찾았습니다. 둘 다 나를 위해 일하지 않았습니다 ...

해결책 1 :

  UILabel *temp = [scrambledWordLabelArray objectAtIndex:i]; 
     temp.text = [self ScrambleWord:[currentGameList objectAtIndex:i]]; 

해결 방법 2 : 나는 더 수정 :(

답변

2

당신은 scrambledWordLabelArray를 초기화하지 않습니다와 시간 연구 및 디버깅 된했기 때문에 어떤 도움을 크게 감상 할 수

  [[scrambledWordLabelArray objectAtIndex:i] setText:[self ScrambleWord:[currentGameList objectAtIndex:i]]]; 
    } 
} 

. 보조 노트에

scramledWordLabelArray = [[NSMutableArray alloc] init]; 

: 당신은 다음 줄을 추가해야

이 사실 currentGameList 및 scrambledWordLabelArray 항상 같은 수의 원소를 가질 것인가? 'for'루프는 currentGameList의 요소 수를 기반으로하지만 scrambledWordLabelArray에서 요소를 가져 오는 데 동일한 인덱스를 사용합니다.

게시 한 두 가지 솔루션은 기본적으로 동일한 코드입니다.

+0

나는 그 자신을 쓰려고했다 ... (OP가 NSMutableArray를 어떤 다른 장소에서 초기화하지 않는다면 ...) –

+0

Bah! 그게 전부 야! 원래 배열을 선언 한 곳에서 컴파일 타임 상수가 아니라고 말했고 배열의 개수를 가져 왔을 때 6을 반환 했으므로 객체가 거기에 있다고 가정했습니다. 고마워요! – Hobbit