我将委托广泛用于 VIEW - CONTROL - MODEL 结构。通常,在应用程序运行期间会保留 CONTROL 和 MODEL 对象,不会引起什么问题。
但是,通常是 的实例的 VIEW 对象被UIViewController
多次分配和释放。
设置nil
为分配有动态UIViewController
实例的委托对象,当它被释放时,是我知道如何避免 EXC_BAD_ACCESS 错误的一种方法。
但是,即使我总是使用:
if ([delegate respondsToSelector:@selector(communityModel:finishedDeletingComment:)]) {
[delegate communityModel:self finishedDeletingComment:succeeded];
}
它对于防止错误并不完美。如果不同的 VIEW 对象共享一个或有限数量的 CONTROL 对象的委托,则总是容易导致委托被另一个无意替换,从而导致 EXC_BAD_ACCESS
有没有更好的方法来管理委托,在调用委托方法时知道它是否真的可用?
我怀疑是否应该更改我通常为委托设置属性的方式。我使用这种方式来设置委托的属性:
@property (nonatomic, assign) id<ControlDelegate> delegate;
我是否会怀疑属性设置是否正确?