我有一个包含以下声明的Delphi移动应用程序:
TWJInformationList = class(TList)
当我为任何移动设备(Android,iOS设备32位,iOS设备64位和iOS模拟器)编译此应用程序时,我收到以下警告:
[DCC警告] WJInformation.pas(248):W1000符号' TList'已弃用
以上编译在所有其他目标平台(32位和64位Windows和OSX)上都很好。
我错过了什么?
答案 0 :(得分:6)
在所有基于ARC的平台上,包括Android,iOS,和 Linux 1 (不是移动平台),旧的Pointer
- 基于容器(如Classes.TList
和System.Contnrs
单元中的容器)已弃用,因为它们不能安全地与基于ARC的对象/接口指针一起使用。您需要在System.Generics.Collections
单元中使用较新的基于Generics的对应项,如TList<T>
,因此编译器可以正确管理ARC。如果您不想要/需要ARC处理,则TList
的直接替换为TList<Pointer>
。
1:以及将来maybe Windows。
答案 1 :(得分:0)
在Delphi版本10.4中,它看起来像System.Contnrs在所有平台上都可用