我有一个单身的班级。该单例使用GCD(通过使用块的宏)进行实例化,并通过类方法由其他对象访问。问题是我需要这个单例作为其他对象的委托。 在哪里(何时)我可以设置它,我无法访问init,但是我需要在创建单例实例时尽快设置它。
答案 0 :(得分:1)
单例的正常行为是,如果需要内部实例,则会创建一个引用它的第一个时间。 (我认为这就是你所说的,但它并不明确。)如果是这种情况,那么似乎需要将它作为委托的对象应该只要在创建该对象时分配它。因此,另一个对象创建的init的一部分将是:
self.delegate = [MySingleton sharedInstance];
我不确定这是否重要,但有没有理由让它成为委托,而不是只在对象需要时使用它,通过类似:[[MySingleton sharedInstance] doSomething];
?
答案 1 :(得分:1)
您创建了一个类实现委托
然后在回调方法
[[NSNotificationCenter defaultCenter] postNotification:your-notification];
然后是真实的
implements viewController [center addObserver:self selector:@selector(your-delegate-mothed:) name:your-name object:nil];
最后:
-(void)your-delegate-mothed:xx
{
//by NSNodificationCenter as gloal delegate ,dispatch callback
}