Objective c 具有静态数据的iOS单例

Objective c 具有静态数据的iOS单例,objective-c,ios,static,singleton,Objective C,Ios,Static,Singleton,我正在与game center合作,希望有一个用于访问我设置的GK功能的单例类,但随后我介绍了两个需要委托的方法。显然,委托不能在单例情况下正常工作,但是我希望/需要在这个类中加载的数据加载一次,并且一直在那里 有没有一种很好的方法,我一直都没有将数据保存在那里,但在需要时将类实例化?你可以说是“singleton类”,我想你的意思是这个类只有类方法。这很好,您仍然可以使用它,因为类对象仍然是对象。也就是说,您可能需要保持状态。每个委托调用都将包含一些参数,这些参数允许对象识别发送者 我自己可能

我正在与game center合作,希望有一个用于访问我设置的GK功能的单例类,但随后我介绍了两个需要委托的方法。显然,委托不能在单例情况下正常工作,但是我希望/需要在这个类中加载的数据加载一次,并且一直在那里

有没有一种很好的方法,我一直都没有将数据保存在那里,但在需要时将类实例化?

你可以说是“singleton类”,我想你的意思是这个类只有类方法。这很好,您仍然可以使用它,因为类对象仍然是对象。也就是说,您可能需要保持状态。每个委托调用都将包含一些参数,这些参数允许对象识别发送者

我自己可能会做的是在一个“initialize”方法中创建一个NSMutableDictionary,然后让对象在发送委托方法之前注册它们自己,当它们注册时,创建另一个mutableDictionary,并将它保存在第一个中,发送对象作为键(或其他唯一标识符)


每个委托调用都必须包含发送方,这样您就可以检索与该对象关联的字典。

为什么委托不能使用单例?是否需要实例化它?你不能使用类方法吗?我想委托可以工作,我关心的是,如果在给定的时间有多个对象使用它,并且每个对象都设置了一个委托,那么它将覆盖已设置的现有委托,除非我添加多个委托。它不需要实例化不,我只需要在init方法中检索一些数据,我宁愿在那里,也不需要在调用其他方法之前调用单独的方法。我的意思是,对象本身只实例化一次。因此,您有一个静态方法
sharedManager
,它返回对象的一个实例,但是如果该对象以前被实例化过,它只返回该对象。我不需要每个委托对象在单例中都有自己的数据,但是单例本身需要包含数据。我关心的是存在多个委托对象。我希望简单地设置单例的委托,而不是在每次方法调用中传递委托。也许有一个委托数组?事实上,Apple的委托方法中有很多都包含调用对象,所以我认为这并不奇怪。您可能不需要存储状态信息,但如果确实需要,使用可变字典是一种很好的方法。如果可以共享此共享实例,还需要确保线程安全。有多个对象也可以。是的,我有线程安全代码,所以应该没问题。我会想办法的。可能是在传递代理。