【提问】声明为接口的实例属性,怎样释放呢?实例属性该Free还是FreeAndNil?
问2个问题
1、
我的form1有一个变量a,类型TA = class(TInterfacedObject, IMyInterface),b类型是TB = class(TObject)声明如下:
- Delphi(Pascal) code
......type TForm1 = class(TForm) private a: IMyInterface; b: TB; public destructor Destroy; override;end;......
该怎样释放a呢?用free报错
2、自定义类型实例属性比如上面的b,需要在destroy里面释放吗?用free释放好还是freeAndNil好呢?
请问a怎样释放?各位指点下谢谢
[解决办法]
我认为都不需要释放
[解决办法]
接口不需要释放
[解决办法]
1 a不用释放,参看接口生命周期
2 freeAndNil比free多一个指针:=nil