I read that (from a book written by Kazuki Sakamoto and Tomohiko Furumoto) on runtime iOS maintains a
key(object's addr) value(reference count)
reference count hashtable
That sort of behaviour sounds more like garbage collection, and isn't exactly how ARC works.
ARC's behaviour is completely deterministic: it tracks the number of
strong references to an object, and once that count hits 0, the object is immediately deallocated. You can read about the implementation details here.