静态对象内存释放

时间:2010-07-10 09:11:06

标签: iphone iphone-sdk-3.0

我的任务是

-(ABC*)createInstance
{
  Static ABC *obj = [[alloc ABC] init];

  if(obj == nil)
  {
    obj = [[alloc ABC] init];
  }
  return obj
}

我们可以写出目标c

[[ABC createInstance] release]

1 个答案:

答案 0 :(得分:2)

是的,如果您未覆盖retain / release,用户可以发布您的实例。请查看common singleton patterns以获得更好的方法。

注意:

  • [ClassName alloc],而不是[alloc ClassName]
  • 如果您打算使用createInstance
  • 使+ (ABC*)createInstance;类方法
  • static,而不是Static
  • 您必须将obj初始化为nil
  • 如果关注子类化,请使用self代替ABC[self alloc]
  • 这些方法的通用名称为sharedInstance