2014-04-11 1 views
0

저는 iOS 용 초보자입니다. NSMutableArray에 관한 문제가 있습니다. 희망 당신은 나를 도울 것입니다테이블 뷰에서 변경 가능한 배열을 업데이트 중입니다.

내 애플 리케이션은 2 개의보기 컨트롤러 (홈 및 목록)가 있습니다.

는 목록에서, 나는 NSMutableArray

self.arrayCategory = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5,@"6", nil]]; 

가지고보기 부하를 한에 넣어. 내가 사용

[self.arrayCategory insertObject:self.textfield.text atIndex:1]; 

arrayCategory에 개체를 추가하려면. 목록보기 컨트롤러에있는 경우에만 작동합니다. 집으로 돌아가서 다시 목록으로 가면 작동하지 않습니다. 배열을 표시하는 요소는 6 개뿐입니다. 해결책을 찾으러 오도록 도와주세요. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다. 모두 고마워요

+0

목록보기 컨트롤러는 아마 집에 갈 때마다 생성되고'arrayCategory'의 새 복사본을 만듭니다. – Macondo2Seattle

+0

한 컨트롤러에서 다른 컨트롤러로 데이터를 전달 하시겠습니까? 또는 디스크/사용자 기본값에 저장 하시겠습니까? – Wain

+0

@BlackRider : 이것에 대해 더 자세히 설명해 주시겠습니까? 가능하다면 솔루션에 대해 더 자세히 설명 할 수 있도록 의견을 말하십시오. 감사합니다. –

답변

0

아마도 홈 화면에 들어갈 때 arrayCategory를 다시 만들었을 것입니다. 당신은 시험도 로깅

NSLog(@"Here I am creating/recreating arrayCategory"); 

를 추가하여 확인할 수 있습니다 (!) 당신이 arrayCategory이 재현되지 않습니다 이러한 경우에

self.arrayCategory = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5,@"6", nil]]; 

static NSMutableArray *staticArray; 
if (staticArray == nil) { 
    staticArray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6", nil]; 
} 
self.arrayCategory = staticArray; 

교체를 시도 할 수 있습니다 그러나이 해결책은 좋지 않습니다. 싱글 톤을 사용하거나 arrayCategory를 저장하기 위해 다른 장소를 사용하는 것이 더 좋습니다.

+0

확인. 그것은 효과가 있었다. 덕분에 Avt –

+1

Avt가 말했듯이 이것은 좋은 해결책이 아니므로 데이터를 저장하는 방법과 정적을 만드는 것보다 얼마나 오래할지 결정해야합니다 – Wain

+0

'정적'인 초보자 용 솔루션에 제안 된 업 보트를 결코받지 못합니다. ( – Avt

관련 문제