可以调用这些语句吗?
[self release];
[super release];
[AClass release];
答案 0 :(得分:1)
[self release]
当对象初始化失败时,实际上鼓励。这是背后的主要原因:
if (self = [super init])
或
self = [super init];
if (self)
另一方面
[AClass release]
似乎调用了元类的实例,它根本没有任何效果。
感谢Josh Caswell指出我的错误。
最后
[super release]
应该像
一样工作[self release]
因为两者都会调用NSObject的发布方法。
答案 1 :(得分:1)
参见: Is calling [self release] allowed to control object lifetime? 对于前两个。
最后一个无效。 (我假设aClass是一个类而不是一个对象
答案 2 :(得分:1)
Apple sample code包含[super release]
。
并且Apple documentation包含包含[self release]
的代码示例。
当对象初始化不成功时,这些构造可能很有用。
你询问的第三个表述([AClass release]
)似乎会导致错误。