编译任何移动设备时都不赞成使用TList

时间:2018-06-05 15:35:39

标签: android ios delphi deprecated delphi-10.2-tokyo

我有一个包含以下声明的Delphi移动应用程序:

TWJInformationList = class(TList)

当我为任何移动设备(Android,iOS设备32位,iOS设备64位和iOS模拟器)编译此应用程序时,我收到以下警告:

  

[DCC警告] WJInformation.pas(248):W1000符号' TList'已弃用

以上编译在所有其他目标平台(32位和64位Windows和OSX)上都很好。

我错过了什么?

2 个答案:

答案 0 :(得分:6)

在所有基于ARC的平台上,包括Android,iOS, Linux 1 (不是移动平台),旧的Pointer - 基于容器(如Classes.TListSystem.Contnrs单元中的容器)已弃用,因为它们不能安全地与基于ARC的对象/接口指针一起使用。您需要在System.Generics.Collections单元中使用较新的基于Generics的对应项,如TList<T>,因此编译器可以正确管理ARC。如果您不想要/需要ARC处理,则TList的直接替换为TList<Pointer>

1:以及将来maybe Windows

答案 1 :(得分:0)

在Delphi版本10.4中,它看起来像System.Contnrs在所有平台上都可用