2011-01-26 7 views
0

루프 내부의 배열에 문자열 객체를 추가하고 싶습니다. 아래는 내 코드입니다.문자열이 NSMutableArray에 추가되지 않음

for (int i=0;i<[retrievedArray count];i++) 
{ 
    NSString *temp = [[retrievedArray objectAtIndex:i] OfficialName]; 
    [detailPgArray addObject:temp]; 
} 

난 retrievedArray 안에 10 개체가 (직접적인하지 문자열하지만 OfficialName 같이)

그러나 몇 가지 이유로, 루프의 끝에 detailPgArray 0 객체를 갖는다. 도와주세요.

+0

코드를 강조 표시 한 다음 "{}"단추를 눌러 코드 서식을 지정할 수 있습니다. – Anna

+0

detailPgArray는 nil입니까? 코드는 괜찮아 보이지만 detailPgArray가 nil이면 항상 0의 카운트를 반환합니다. – Joe

+0

.h 파일에서 detailPgArray를 선언하고이 for 루프 내에서 설정하려고합니다. 나는 그것을 nilanywhere로 설정하지 않았다. – testndtv

답변

3

detailPgArray가 가능성이 높습니다. 어딘가에 할당해야합니다. 인스턴스 변수 인 경우 다음을 시도하십시오.

목표 - C에서
[detailPgArray release]; 
detailPgArray = [[NSMutableArray alloc] initWithCapacity:[retrievedArray count]]; 

for (int i=0;i<[retrievedArray count];i++) 
{ 
    NSString *temp = [[retrievedArray objectAtIndex:i] OfficialName]; 
    [detailPgArray addObject:temp]; 
} 
+0

이 멋진 기초 학습을 해주셔서 감사합니다 ... 모든 바위 .UNFORTUNATELY 나는 모든 당신의 답변을 받아 들일 수 없었습니다! – testndtv

1

나는 detailPgArray를 할당하고 초기화하는 것을 소홀히 했었다고 생각합니다. 만약 nil이라면, -addObject : 호출은 무한히 공백으로 가고, 이후에 -count를 호출하면 nil이나 0이 반환됩니다.

0

대부분 detailPgArray은 0입니다. 변수를 입력하려면 배열을 만들어야합니다.

0

당신이 nil에게 메시지를 보낼 수 있으며, 응용 프로그램이 충돌하지 않을 것이다 - 그리고 그 addObject 호출을 코드에서 무슨 일이 일어나고있다. 배열을 할당하고 초기화해야합니다.

관련 문제