2015-11-08 4 views
0

Я выделяю viewcontroller без init it, но все работает нормально. Подразделы в viewcontroller работают нормально.Я выделяю viewcontroller без init, но почему все работает нормально

Вот код.

self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; 
[self.window makeKeyAndVisible]; 
self.window.rootViewController = [[UINavigationController alloc]initWithRootViewController:[ViewController alloc]]; 

Код в ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self test]; 
} 


- (void)test 
{ 
    self.view.backgroundColor = [UIColor whiteColor]; 
    CGRect frame = CGRectMake(50, 100, 200, 200); 
    UIScrollView *scrollView= [[UIScrollView alloc] initWithFrame:frame]; 
    [self.view addSubview:scrollView]; 
    frame= CGRectMake(0, 0, 500, 500); 
    UIImageView *myImageView= [[UIImageView alloc] initWithFrame:frame]; 
    [scrollView addSubview:myImageView]; 
    scrollView.contentSize = CGSizeMake(500,500); 

    scrollView.backgroundColor = [UIColor blackColor]; 
    myImageView.backgroundColor = [UIColor yellowColor]; 

    scrollView.contentOffset = CGPointMake(0, 0); 

} 


@end 
+0

Действительно ли 'ViewController' что-то делает? – Arc676

+0

Я поставил код ViewController.m в описании вопроса. – Zentopia

+0

Ну, если я правильно помню 'init', это в основном просто инициализация переменных. У вас, похоже, нет глобальных, и я уверен, что 'ViewController' расширяет' NSObject', поэтому, возможно, вам не нужно вызывать 'init'. – Arc676

ответ

0

Ави получил это право в (его?) Комментарий. Это глупая удача. Это похоже на то, что я «за рулем мой автомобиль за 30 000 км, не меняя масла, и все работает нормально. Почему все говорят, что нужно менять масло?»

Инициирует установку для класса, и это классы предков. Совершенно очевидно, что есть некоторая настройка, которая не выполняется, что вызовет проблемы в будущем.

Правильный способ создания объекта с помощью alloc/init. Если вы этого не сделаете, «результат не определен».

+0

Большое спасибо! – Zentopia

Смежные вопросы