2012-04-03 3 views
0

내 .m 파일에서 "선언되지 않은 식별자 사용"오류가 아래 코드와 함께 발생하며 해결되지 않은 것 같습니다. 내 .H 파일에서선언되지 않은 식별자 오류 사용

NSArray *imageViews = [NSArray arrayWithObjects:img1, img2, img3, img4, img5, img6, img7, img8, img9, img10, img11, img12, img13, img14, img15, img16, img17, img18, img19, img20, img21, img22, img23, img24, img25, img26, img27, img28, img29, img30, img31, img32, img33, img34, img35, img36, img37, img38, img39, img40, nil]; 

내가 40 개 이미지, 참조 콘센트 모두가 X는 1-40의 숫자가

@property (weak, nonatomic) IBOutlet UIImageView *imgX; 

. my .m 파일에서 NSArray * imagesViews는 메서드 내부에있는 한 제대로 작동하지만 모든 메서드에서 사용할 수 있도록 메서드 외부에 선언 할 수는 없습니다. Objective-C 초심자로서, 나는 여기서 어디로 가야하지 않습니다. 나는 어떤 도움을 주셔서 감사합니다.

+0

카니는하는 .m 파일을 살펴 있나요? –

+2

어레이를 채우기 위해'imgX' 대신'self.imgX'를 사용하십시오. –

답변

4

배열을 모든 메서드에서 액세스 할 수 있도록 메서드 외부에 초기화 할 필요는 없습니다. 대신에 을 입력해야을 속성으로 선언하고 viewDidLoad 메서드 내에서 초기화해야합니다. .m 파일에서

@property (strong, nonatomic) NSArray *imageViews; 
@property (weak, nonatomic) IBOutlet UIImageView *img1; 
// ... 

: 다음 .h 파일에서

@synthesize imageViews, img1, img2, ... 
// ... 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // ... 
    self.imageViews = [NSArray arrayWithObjects:self.img1, self.img2, ... , nil]; 
} 
또한

, 당신은 40 이미지 뷰를 가지고 있기 때문에, 당신은 아마에 대한 속성을 선언하지 말아야 있습니다 각자 하나씩. 태그를 할당 한 다음 viewWithTag 메서드를 사용하여 태그를 검색 할 수 있습니다. 헤더에서

+0

ARC로 컴파일해야하는 경우에주의 할만한 가치가 있습니다. – MrTJ

+0

감사합니다. 그것은 지금 일하고 있습니다 - 저는 여전히 자신의 적절한 사용을 정말로 파악했습니다. 태그 사용에 대한 제안을 주셔서 감사합니다. 그러나 저는 지금이 순간에 힘든 시간을 보내고 있습니다. 일단 응용 프로그램이 작동되면 다시 올 수 있습니다. – garethdn

+1

@MrTJ - OP는 '약한'속성을 사용하고 있으므로 ARC를 사용하고 있다고 가정합니다. – sch

0

:

@interface MyClass : NSObject { 
    NSArray *imageViews; 
} 

@end 

구현에서 :

@implementation MyClass 

- (id) init 
{ 
    self = [super init]; 
    if (self != nil) { 
     imageViews = [[NSArray arrayWithObjects:img1, nil] retain]; 
    } 
    return self; 
} 

// now you can use imageViews also from other methods 

- (void) dealloc 
{ 
    [imageViews release]; 
    [super dealloc]; 
} 

@end 
+0

imageViews를 클래스의 _outside_에서도 사용해야하는 경우 속성도 사용할 수 있습니다. – MrTJ