Как само присваивается в наследство? - PullRequest
1 голос
/ 16 января 2012

Используя iOS SDK, у меня есть подкласс UITableViewController

@interface MyViewController : UITablewViewController

@end

Свойства dataSource и делегата UITableViewController автоматически устанавливаются в MyViewController.

Я просто не уверен, почему этослучается.Я думал, что «self» будет экземпляром UITableViewController, когда он инициализируется, а не подклассом.

Может кто-нибудь помочь объяснить, как делегат и источник данных указывают на подкласс, а не UITableViewController.

Спасибо

Ответы [ 2 ]

1 голос
/ 16 января 2012

Я постараюсь выразить это очень простыми словами:

  1. Вы создаете объект вашего подкласса UITableViewController, а не самого UITableViewController.

  2. Ваш делегат и источник данных будут указывать на viewController, который выводит табличное представление на экран (это обычно делается).

  3. Так что теперь все методы делегата и источника данных будут вызываться из этого viewController.

Посмотрите на этот пример кода от Apple. Надеюсь, это должно прояснить ситуацию.

0 голосов
/ 16 января 2012

Измените свой код следующим образом:

1. Наследуйте MyViewController от UIViewController
2. Сделайте объект UITableViewController в MyViewController
3. Установите свойства делегата и источника данных на self.

Код:

MyViewController.h

    @interface MyViewController : UIViewController

    @end

MyViewController.m

    @implementation MyViewController
      -(void)viewDidLoad{
        UITableViewController *tableView = [[UITableViewController alloc]init];
        tableView.delegate = self;
        tableView.datasource = self;
      }

      ---------- 
   @end

Я думаю, что это будетпомочь тебе ...

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