从IB设置UIScrollView变量的iOS显示为nil

时间:2012-03-14 15:31:40

标签: ios uiscrollview

目前我有一个UIViewController子类,里面有UIScrollView和UIView。以下是该类代码片段:

·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

在IB中我将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;
}

我是否错过了导入或其他任何内容才能正确分配?

修改 它可能有所帮助,但如果我尝试调试该问题并在lldb中检查scrollView的值,如果我尝试继续代码,我会收到EXC_BAD_ACCESS错误。

2 个答案:

答案 0 :(得分: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 - 我认为你没有分配/初始化。

连接到笔尖的@property IBOutlet与iVar不同。实际上你有两个同名的变量 - 如果你摆脱那些iVars,在加载XIB时,属性仍然会被分配和初始化。

答案 1 :(得分:0)

问题与代码无关,而与调试器本身无关。我尝试在xCode 4.3.1中执行此操作,并通过应用程序进行调试,并发现在xib和代码中都没有设置正确的字段。我删除了所有内容并打开了xCode 4.2并在那里尝试了一切都很顺利。在4.2中测试后,我转到4.3.1,它要求我从GDB切换到LLDB。我想,由于没有看到正确的结果,我只是偏执狂。