我需要一个对象来为每个系统做一些工作,直到它完成,然后我希望释放该对象。这是一个好的设计模式吗?
@property(nonatomic, retain) A a;
// This call is done once in a while, and when a is no longer needed it will self destruct.
self.a = [self.a doSomething];
,其中
-(A*)doSomething
{
bool rdy = [self doTheWorkAndReturnTrueIfRdy];
return rdy ? nil : self;
}
答案 0 :(得分:0)
此方法:
-(void)doSomething
{
bool rdy = [self doTheWorkAndReturnTrueIfRdy];
return rdy ? nil : self;
}
被定义为没有回报 - 但你试图返回某些东西。它似乎也是你希望它被多次调用/阻止调用者,这可能不会起作用或者不是一个好主意。
考虑按照您的计划保留工作人员,但添加与源对象的委托关系。完成工作程序后,调用委托方法。当源对象收到委托回调时,它可以释放该worker。