2009-08-25 1 views
0

배열 작업에 어려움을 겪고 있습니다. AS2/AS3 및 가비지 수집은 나에게 새로운 것입니다 ...;)NS (Mutable) Array를 클래스에 유지하는 중 오류가 발생했습니다.

이것은 전체 코드가 아니라 중요한 부분입니다.

.h-file 
@interface HelperViewController : UIViewController { 
    NSMutableArray *pagesNumbers; 
} 
@property (nonatomic, retain) NSMutableArray *pagesNumbers; 

.m-file 
@synthesize pagesNumbers; 
-(void)loadView { 
    pagesNumbers = [NSMutableArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:1], [NSNumber numberWithInt:1], [NSNumber numberWithInt:1], nil]; 
    NSLog(@"pagesNumbers: %@", pagesNumbers); // WORKS! 
} 
-(void)changePage:(id)sender { 
    NSLog(@"pagesNumbers: %@", pagesNumbers); // PROBLEM* 
} 

문제 * 거기있다, 그것은이 (매우 유익한) 나중에에있는 UIButton에 의해 호출 될 때 함수가 viewDidLoad에 의해 호출하지만, CRASH을 수행 할 때 작동하는 MSG :

[ 세션 시작일 : 2009-08-25 11:12:51 +0200] GNU gdb 6.3.50-20050815 (Apple 버전 gdb-966) (3 월 10 일 2시 43 분 13 초 2009) Copyright 2004 Free Software Foundation , Inc. GDB는 GNU General Public License의 적용을받는 자유 소프트웨어이며, 귀하는 입니다. 특정 조건에서 변경하거나 복사본을 배포 할 수 있습니다. "show copying"를 입력하여 조건을 확인하십시오. GDB에 대한 어떠한 보증도 없습니다. 자세한 내용은 "보증 표시"를 입력하십시오. 이 GDB는 "i386-apple-darwin"으로 설정되었습니다 .sharedlibrary apply-load-rules 모두 적용됩니다. 프로세스 13197에 연결.

아무도 도와 줄 수 있습니까?

감사합니다. Eric.

답변

2

페이지 수처럼 보입니다. 숫자가 유지되지 않습니다. 추가

보십시오 배열에는 loadView 초기화 된

[pagesNumbers retain]; 

후.

arrayWithObjects는 자동 레이아웃 배열을 반환하므로 나중에 사용하려면 명시 적으로 유지해야합니다.

수정, 그냥 주목 된 pagesNumber는 속성이기도합니다. 합성 된 setter가 호출되지 않고 자동으로 유지되지 않도록 pagesNumbers를 직접 초기화합니다. 당신이 속성 setter를 사용하고자한다면, 당신은 자기를 사용하여 페이지 번호를 참조해야한다고 믿습니다.

self.pagesNumbers = [NSMutableArray arrayWithObjects..... 
+0

고마워요, Tom, "자기"가 트릭을했습니다. 그리고 당신의 설명과 함께 마침내 영구적으로 "자기"를 사용하기 위해 제 두뇌에 탄 것입니다. 좋은 하루 되세요. 제게 감사합니다! ;) –

관련 문제