我创建了一个组件并在其他地方使用它,但我不知道该组件是否已发布。
那么在使用它之前如何检查一个对象?
感谢。
答案 0 :(得分:3)
我假设你的目标是移动编译器,因为否则ARC没有被使用,那么这个问题似乎毫无意义。
测试Disposed
属性。
Disposed是一个只读属性,显示了当前的状态 对象
如果已放置对象,则Disposed属性返回True 使用DisposeOf方法。否则,它返回False。
但是,你甚至可能会问这个问题看起来很奇怪。也许你没有以最好的方式解决你的问题。
答案 1 :(得分:0)
在阅读了您的其他问题之后,您似乎正在尝试调试OSX上的内存问题,并且您正试图找出哪个对象已被释放但仍在使用中。
我建议在启用完全调试模式的情况下使用FastMM4。不要忘记将libFastMM_FullDebugMode.dylib与您的项目一起部署,以便使用FastMM4进行调试。如果您尝试访问已释放的对象,则会引发异常。
答案 2 :(得分:0)
在清除对它的所有引用之前,对该类的引用是“活着的”。 如果您不使用像DisposeOf这样的脏方法,或使用弱参考。
最好的方法 - 使用TDictionary。 在构造函数中添加类的地址,并在析构函数中删除它。