В другом вопросе я обнаружил, что Assigned ()
функция идентична Pointer nil
. Я всегда понимал, что Assigned ()
обнаруживал эти висячие указатели, но теперь я узнал, что это не так. Висячие указатели - это те, которые могли быть созданы в какой-то момент, но с тех пор были освобождены и еще не присвоены nil
.
Если Assigned ()
не может обнаружить висячие указатели, то что может? Я хотел бы проверить свой объект, чтобы убедиться, что это действительно действительный созданный объект, прежде чем я попытаюсь с ним работать. Я не использую FreeAndNil
, как многие рекомендуют, потому что мне нравится быть прямым. Я просто использую SomeObject.Free
.
Нарушения доступа - мой злейший враг - я делаю все возможное, чтобы предотвратить их появление.