您的位置:首页 > 移动开发 > Objective-C

TList,TObjectList 使用——资源释放

2013-11-17 19:45 387 查看
TOjectList = Class (Tlist);

TOjectList继承Tlist,从名字上看就可以知道它是专门为对象列表制作的,那么他到底丰富了那些功能呢?

首先是 TObject 作为对象可以方便使用,无需指针强制。

丰富了 Notify 针对当前状态处理,比如如果是删除就将该点的引用一并清理掉;

procedure TObjectList.Notify(Ptr: Pointer; Action: TListNotification);
begin
if (Action = lnDeleted) and OwnsObjects then
TObject(Ptr).Free;
inherited Notify(Ptr, Action);
end;

在 Tlist 中,有 Clear(),将呼叫 SetCount,SetCapacity;即删除所有。

procedure TList.Clear();
begin
SetCount(0);
SetCapacity(0);
end;

当该对象销毁是,也会自动调用Clear() 清除所有。

destructor TList.Destroy;
begin
Clear();
end;

总结:如果有一个对象需要用到列表,最好从 TOjectList 开始继承,对资源释放有完善的处理机制。

如果从 Tlist 继承也必须实现 Notify() ,方便资源释放,减少麻烦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: