2016-08-29 1 views
0

내 응용 프로그램에서는 필터를 적용 할 뷰가 있습니다. 그래서 돌아와서 필터를 바꾸지 만 적용 버튼을 누르지 않고 뒤로 버튼을 누르면 원래의 필터가 바뀌기 전에 원래의 필터로 되돌리기를 원합니다.복제 된 원본 배열을 변경할 때 NSArray가 변경되었습니다.

예 : 필터 - 도시 - A, B, C - 적용된 A, B, C 필터 다시 왔음 필터 - 도시 - D, E - 뒤로 버튼 누름 - A, B, C 필터 다시 연결

filterview의 viewDidLoad에 열 바로 그 때입니다하고, 나는

clonedFiltersData = [[NSMutableArray alloc] initWithArray:[[WMGFilterManager sharedManager] arrayForType:type]]; 

이 잘 작동 복제 배열에 필터 배열을 저장하지만 에 뭔가 변경하면 [[WMGFilterManager sharedManager] arrayForType : 유형]

은 일부 필터 또는 일부를 제거하는 것처럼 실제로 원래 배열에서 제거됩니다. 누구든지 어레이를 초기화하는 방법을 알려서 참조에 영향을받지 않도록 할 수 있습니까?

답변

0

initWithArray에 copyItems : YES 옵션을 추가하십시오. 이 예에서와 같이;

NSArray *deepCopyArray=[[NSArray alloc] initWithArray:someArray copyItems:YES]; 

얕은 복사본 (포인터를 복사 함)이 아닌 깊은 복사본이 필요합니다.

관련 문제