Как настроить одноэлементный класс в качестве делегата? - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть класс-одиночка. Этот синглтон создается с помощью GCD (через макрос, который использует блок), а другие объекты доступны через метод класса. Проблема в том, что мне нужен этот синглтон, чтобы быть делегатом другого объекта. Где (когда) я могу установить это, у меня нет доступа к init, но мне нужно настроить это в ближайшее время, когда создается экземпляр singleton.

Ответы [ 2 ]

1 голос
/ 13 июля 2012
  1. вы создаете делегат класса, реализующий

  2. затем в методе обратного вызова

    [[NSNotificationCenter defaultCenter] postNotification:your-notification];
    
  3. тогда в реальном

    implements viewController [center addObserver:self selector:@selector(your-delegate-mothed:) name:your-name object:nil];
    
  4. наконец:

    -(void)your-delegate-mothed:xx
     {
      //by NSNodificationCenter as gloal delegate ,dispatch callback
     }
    
1 голос
/ 02 апреля 2012

Обычное поведение для синглтона состоит в том, что, если ему нужен внутренний экземпляр, он создает один первый раз, когда на него ссылаются. (Я думаю, это то, что вы говорите, но это не явно.) Если это так, то кажется, что объект, который должен иметь его в качестве делегата, должен просто назначать его всякий раз, когда этот объект создается. Таким образом, часть инициации создания другого объекта будет: self.delegate = [MySingleton sharedInstance];

Я не уверен, что это имеет значение, но есть ли причина делать его делегатом, вместо того, чтобы просто использовать его всякий раз, когда объект нуждается в чем-то вроде: [[MySingleton sharedInstance] doSomething];?

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