Мне нужна помощь, чтобы понять несколько методов в приложении, основанном на представлении - PullRequest
0 голосов
/ 14 января 2010

когда я создаю новое приложение, основанное на представлении, несколько методов в файле реализации (.h) Я не понимаю их цели, и когда я заглядываю в центр разработчиков, это трудно понять из-за его объяснения.

для чего предназначены эти методы и для чего они используются на простом английском языке.

- (void)loadView
- (void)viewDidLoad
- (void)viewDidUnload

Я предполагаю, что viewdidload состоит в том, что когда представление загружается и что-то между браслетами выполняется первым, но когда создаются другие пользовательские методы (если это является целью viewdidload), как он узнает, какой метод выполнить? код выполняется сверху вниз? при том, что какой-либо метод, перечисленный первым, выполняется?

также я заметил слово супер в квадратных скобках вместе с другими ключевыми словами. какова цель супер?

спасибо!

Ответы [ 2 ]

0 голосов
/ 15 января 2010

Ну, "супер" означает Суперкласс или родительский класс, который расширяет ваш текущий класс.

@interface MyViewController : UIViewController{}

В приведенном выше коде, который вы можете найти в некоторых .h файлах, MyViewController расширяет UIViewController. Итак, все время, когда вы вызываете «super» внутри MyViewController, вы вызываете UIViewController.

Итак, когда вы видите следующую структуру, внутри MyViewController ...

- (void)viewDidLoad {
    [super viewDidLoad];
    .
    .
    .
    .
    .
}

... это означает, что когда вызывается метод "viewDidLoad", он сначала вызывает метод из своего суперкласса, после чего запускает собственный код.

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

Чтобы понять, что такое все методы (loadView, viewDidLoad, viewDidUnload), взгляните на ссылку UIViewController Class в Apple Developer Connection.

Приветствия,
VFN

0 голосов
/ 14 января 2010

Ваш класс является производным от системного класса UIViewController (это подкласс, в языке Objective C). [super someMethod] означает - вызовите этот метод для базового класса (суперкласс в ObjC lingo).

Если вы знакомы с C #, super в ObjC означает то же самое, что и base в C #. И так же, как супер в Java. :)

Системный класс UIViewController имеет функцию загрузки в своем методе loadView. Этот метод вызывается системой, и он выполняет много работы. С другой стороны, метод viewDidLoad определен в базовом классе, но мало что делает. Его целью является то, что вы можете переопределить его и предоставить свои собственные функции там. То же самое для viewDidUnload.

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