2012-03-14 2 views
0

현재 UIViewController 하위 클래스에 UIScrollView 및 UIView가 있습니다. IB에 내부iOS에서 IB의 UIScrollView 변수를 설정하면 무응답으로 표시됩니다.

.H

#import <UIKit/UIKit.h> 

@interface Scroller : UIViewController <UIScrollViewDelegate> 
{ 
    UIScrollView *scrollView; 
    UIView *testView; 
} 

@property (retain, nonatomic) IBOutlet UIScrollView *scrollView; 
@property (retain, nonatomic) IBOutlet UIView *testView; 

@end 

내 변수에있는 UIScrollView를 연결,하지만 난하는 .m에 도착하면 내있는 ScrollView를 설정하려고 contentSize가 보여줍니다 : 다음은 클래스의 코드 조각입니다 scrollView는 nil로 표시됩니다.

하는 .m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    // Initialize of scrollView 
    scrollView.contentSize = CGSizeMake(500, 500); 
    scrollView.delegate = self; 
} 

오전 나는이 제대로 할당 할 가져 오기 또는 아무것도 누락?

편집 내가 문제를 디버깅하려고하면 그것은 알고하는 데 도움이 수 있지만 내가 코드를 계속하려고하면 내가이 EXC_BAD_ACCESS 오류가있는 ScrollView의 값을 확인 lldb한다.

+1

contentSize를 어디에서 설정하려고합니까? init 또는 다른 곳에서 viewDidLoad 이전에이 작업을 수행하면 스크롤 뷰가 작성되지 않았으므로 nil이됩니다. – Damo

+0

viewDidLoad에서이 작업을 수행하고 있습니다. 나는 testView를 확인하고 제대로 만들어졌습니다. – Seb

+1

viewDidLoad를 추가하십시오 - 또한 이중 고음을 사용하여 XIB 링크를 두 번 확인하십시오 – Damo

답변

0

문제는 코드와 관련이 없지만 디버거 자체는 관련이 있습니다. xCode 4.3.1에서이 작업을 시도하고 응용 프로그램을 통해 디버깅 중이 었으며 올바른 필드가 xib 및 코드에서 설정되지 않은 것을 보았습니다. 모든 것을 삭제하고 xCode 4.2를 열어 거기에서 시험해 보았습니다. 모든 것이 훌륭하게 작동했습니다. 4.2에서 테스트 한 후 4.3.1로 이동하여 GDB에서 LLDB로 전환하도록 요청했습니다. 나는 적절한 결과를 보지 못해 결국 내게는 편집증 일 뿐이라고 생각합니다.

0

//.h 
@interface Scroller : UIViewController <UIScrollViewDelegate> 
{ 
} 

@property (retain, nonatomic) IBOutlet UIScrollView *scrollView; 
@property (retain, nonatomic) IBOutlet UIView *testView; 


//.m 
[self.scrollView setContentSize:CGSizeMake(500, 500)]; 

그냥 자기없이

있는 ScrollView를 명확히하려고합니다. iVar를 보았습니다 - 당신이 할당하지 않았다고 가정합니다/init-ed.

nib에 연결된 @property IBOutlet은 iVar와 동일하지 않습니다. 실제로 동일한 이름의 두 변수가 있습니다. 이러한 iVars를 제거하면 XIB로드시 속성이 할당되고 초기화됩니다.

+0

여전히 내 testView에 할당되었습니다. – Seb

+0

나는 그 주석을 이해하는지 모르겠다 - scrollView가 IB에서 testView에 링크되어 있다는 것을 의미합니까?!? 그렇다면 1. 위의 편집을하십시오. 2. XIB에 도착 - 모든 오래된 링크를 삭제하십시오; 3. 다시 연결 다시 실행 – Damo

+0

모든 링크를 제거하고 프로그래밍 방식으로 할당하려고했습니다. testView를 할당하려고하면 아무 일도 일어나지 않습니다. 내가 할당 할 때 scrollView testView 할당 된 가져옵니다. – Seb

관련 문제