2010-08-13 5 views
0

안녕하세요 저는 iphone을 처음 사용합니다. 내가 뭘하는지 레이블로 명명 된 NSMutable 배열을 선언하고있는 viewdidload.But있는 null로 표시하는 buttonclick 함수 레이블에 액세스 할 때 선언 된 것입니다. 이전에는 .h 파일에서 propery를 선언하고 init 함수에서 초기화했습니다. 제발 선언 할 수있는 방법과 어디에서 클래스에 액세스 할 수있는 가변 배열을 선언하는 방법과 그것에 객체를 추가하는 방법, 그 값을 동적으로 changeble 있습니다 도와주세요. thanku배열을 전역으로 선언하는 방법

+0

읽기 문서를보십시오 : http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html# // apple_ref/doc/uid/20000138-DontLinkElementID_1 – jamapag

답변

0

클래스의 어느 곳에서나 배열에 액세스 할 수있게하려면 @interface에 선언해야합니다. 귀하의 코드는 다음과 같이 보일 것이다 :

@interface MyViewController : UIViewController { 
    NSMutableArray *labels; 
} 
@end 


@implementation MyViewController 

- (void)viewDidLoad { 
    labels = [[NSMutableArray alloc] init]; 
    [labels addObject:@"Label"]; 
    // etc. 
} 

- (void)dealloc { 
    // Don't forget to do this or your array will leak 
    [labels release]; 
    [super dealloc]; 
} 

- (void)buttonClickHandler { 
    // Do stuff with labels 
} 

@end 
0

내가 그들을 필요로 할 때 당신이 C에서, 내가

GLOBAL

IFDEF 지능의 XYZ 같은 것을 포함하는 포함 파일 variables.h이하는 것처럼 당신이 그들을 선언 할 수 있습니다; 구조체 abc * ptr;

else

외부 int xyz; 외부 구조체 abc * ptr;

ENDIF

하나 개하는 .m 파일에서, 아이 패드는 저를 수정하는 오타 실례

GLOBAL 정의 #을한다.

+0

나는 그가 전역 변수를 만들려고하고 있다고 생각하지 않지만 클래스의 어느 곳에서나 접근 할 수있다. 어쨌든 Objective-C 컨텍스트에서 전역 변수의 경우 전역 C 변수를 선언 할 때 선언하는 것보다 단일 클래스가 더 적절합니다. –

관련 문제