如何将单例类设置为委托?

时间:2012-04-01 19:25:26

标签: objective-c ios initialization

我有一个单身的班级。该单例使用GCD(通过使用块的宏)进行实例化,并通过类方法由其他对象访问。问题是我需要这个单例作为其他对象的委托。 在哪里(何时)我可以设置它,我无法访问init,但是我需要在创建单例实例时尽快设置它。

2 个答案:

答案 0 :(得分:1)

单例的正常行为是,如果需要内部实例,则会创建一个引用它的第一个时间。 (我认为这就是你所说的,但它并不明确。)如果是这种情况,那么似乎需要将它作为委托的对象应该只要在创建该对象时分配它。因此,另一个对象创建的init的一部分将是: self.delegate = [MySingleton sharedInstance];

我不确定这是否重要,但有没有理由让它成为委托,而不是只在对象需要时使用它,通过类似:[[MySingleton sharedInstance] doSomething];

答案 1 :(得分:1)

  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
     }