iOS, устанавливающая переменную UIScrollView из IB, показывает как ноль - PullRequest
0 голосов
/ 14 марта 2012

На данный момент у меня есть подкласс 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 как ноль.

.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 голосов
/ 14 марта 2012

Проблема связана не с кодом, а с самим отладчиком. Я попытался сделать это в xCode 4.3.1, отлаживал через приложение и увидел, что не были установлены правильные поля как в xib, так и в коде. Я удалил все и открыл xCode 4.2 и попробовал там, и все работало хорошо. После тестирования в 4.2 я перешел на 4.3.1, где он попросил меня перейти с GDB на LLDB. Я полагаю, это была паранойя с моей стороны из-за того, что я не увидел должных результатов.

0 голосов
/ 14 марта 2012

попробуйте

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

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


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

просто чтобы уточнить

прокрутка без самопознания.смотрел на iVar - который, как я полагаю, у вас не был alloc-ed / init-ed.

@Property IBOutlet, подключенный к вашему пиру, НЕ совпадает с iVar.Фактически у вас есть две переменные с одинаковым именем - если вы избавитесь от этих iVars, свойство все равно будет выделено и инициализировано для вас при загрузке XIB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...