2010-04-04 2 views
0

다른 클래스에서 다른 배열로 하나 개의 클래스의 배열을 설정하려면 어떻게... 내가 채워 배열 하나 개의 클래스에서이 같은 데이터를 한

PowerClass.h 

NSMutableArray pickerArray; 
@property (nonatomic, retain) NSMutableArray pickerArray; 

-

PowerClass.m 

@synthesize pickerArray; 

@implementation 
NSMutableArray *array = [[NSArray alloc] initWithObjects:@"stef", @"steve", @"baddamans", @"jonny", nil]; 
pickerArray = [NSMutableArray arrayWithArray:array]; 

그리고 다른 클래스의 배열을 설정하려고합니다.

WeekClass.h 

PowerClass   *powerClass; 
NSMutableArray *pickerData; 

@property (nonatomic, retain) NSMutableArray pickerData; 
@property (nonatomic, retain) PowerClass *powerClass; 

WeekClass.m 

@implementation 
pickerData = [NSMutableArray arrayWithArray:powerClass.pickerArray]; 

오류나 경고가 없습니다. 그냥 충돌합니다. NSLog는 powerClass.pickerArray가 NULL이라고 말합니다.

올바른 방향으로 날 가리 도와주세요.

답변

2

메모리 관리!

님은 오토 릴리즈 객체 인 pickerArray = [NSMutableArray arrayWithArray:array];을 설정했습니다. 나중에 pickerArray를 요청할 때까지 사라졌습니다!

해결책은 @synthesize D의 접근을 이용하는 것이다. 대신에 :

pickerArray = [NSMutableArray arrayWithArray:array]; 

... 다음 중 하나를 사용

[self setPickerArray:[NSMutableArray arrayWithArray:array]]; 
self.pickerArray = [NSMutableArray arrayWithArray:array]; 
//These two are exactly equivalent, but are both very different from what you have now. 

이 방법, 당신의 재산은 당신을 위해 메모리 관리를 처리합니다.

+0

안녕하세요, 건배 미안 ... 내가 무엇을 할 수 ... 주 클래스 picker.Data가 null 의미했다 ... 내 질문에 잘못 넣어? 는 고맙습니다 다시 (내가 :-)를 보낼 때 죄송합니다, 그것은 영국 오전 4시했다) ... – Stef

관련 문제