我读过你应该将委托人设置为无dealloc
。我注意到它在init
中这样做,这是好的,还是应该在dealloc
中做同样的事情?目标C中无委托人
“这很微妙但很方便,如果你将自己作为委托传递给另一个对象,在你释放之前重置该对象的委托。
file.h
@interface TestService : NSObject
{
NSObject <TestServiceDelegate> *m_delegate;
}
@property (nonatomic, assign) NSObject <TestServiceDelegate> *delegate;
file.m
@synthesize delegate=m_delegate;
- (id)init
{
if (self = [super init])
{
m_delegate = nil;
}
return self;
}
- (void)dealloc
{
[super dealloc];
}
为什么在init中这样做会让你无法在dealloc中执行它,如果哪一个甚至真的有必要? – 2013-02-18 16:59:25
有些人喜欢在'init'中删除实例字段,作为一种“腰带和吊带”的东西,并用于文档目的。这是没有必要的,并且与之后在dealloc中做的事无关。 – 2013-02-18 16:59:51