在一个类的所有实例之间共享变量

时间:2011-01-14 09:35:12

标签: objective-c cocoa-touch class uikit core-foundation

嘿,我正在使用我的tablecells创建一个图像加载系统,我需要每个单元格共享我的imageloader类的相同实例。对不起,如果这是一个不成熟的问题,但有可能实现这个目的吗?所以我的意思是,如果我在同一个类的其他实例中有int变量,则int变量的值在两个类中都是相同的。

提前致谢!

1 个答案:

答案 0 :(得分:2)

对于“所有事物的单一实例”,您需要一个单身人士:

+(SomeClass *)sharedInstance {
  static SomeClass *instance = nil;
  if (instance == nil) {
    instance = [[self alloc] init];
  }
  return instance;
}

然后,无论您需要共享实例,只需执行以下操作:

SomeClass *obj = [SomeClass sharedInstance];

静态变量基本上是什么使它工作,当与“是零”测试结合时,因为静态变量只被初始化一次。

顺便说一句,我认为由于使用UITableViewCell的方式(即复制),您可能已经拥有了所需的内容而无需进一步的工作,例如创建单例。只需在copyWithZone:中提供正确的浅拷贝逻辑。