我追问是静态对象内存释放
-(ABC*)createInstance
{
Static ABC *obj = [[alloc ABC] init];
if(obj == nil)
{
obj = [[alloc ABC] init];
}
return obj
}
,才能在客观C写的
[[ABC createInstance] release]
我追问是静态对象内存释放
-(ABC*)createInstance
{
Static ABC *obj = [[alloc ABC] init];
if(obj == nil)
{
obj = [[alloc ABC] init];
}
return obj
}
,才能在客观C写的
[[ABC createInstance] release]
是的,如果你还没有覆盖retain
/release
用户可以发布您的实例。看看common singleton patterns更好的方法。
注:
[ClassName alloc]
,不[alloc ClassName]
createInstance
类方法使用+ (ABC*)createInstance;
static
,不Static
obj
至nil
self
,而不是ABC
如果子类是一个问题:[self alloc]
sharedInstance
我想补充: 1.你必须**用零来初始化静态存储变量(非原语不起作用)。 2.你应该使用'self'而不是'ABC'来分配(用于子类化)。 3.访问者应该被命名为'sharedInstance'(公共objc样式)。 – 2010-07-10 09:32:22
@Nik:很好的补充,但是1.仅适用于文件范围变量。 – 2010-07-10 09:39:25
1.哦,好,我没有意识到这种差异。 2.它应该是'[self alloc]',因为它是一个类方法(当然)。 – 2010-07-10 09:45:55
您的代码是没有意义的,并不会编译。 – 2010-07-10 09:20:07
你试图用代码实现什么? – 2010-07-10 11:58:32