Ist there a special reason you are working with IID?
IID changes when objects are destroyed and created.
From the Manual:
For example, the first instance in two object types both have the IID 0, the second 1, and so on. Therefore the IID neither identifies a unique instance like the UID, nor does it persistently refer to the same instance (if IID 0 is destroyed, the next instance becomes IID 0).