Implementing nulling weak links is not difficult. All you have to do is just keep track of all the link pointers - store them in a collection - and assign NULL
when deleting the pointer object. In any case, doing all this manually is really a lot of work, you literally need to write all the manual tracking code to be effective enough in Objective-C.
And in the end, you will finally find that you need an automatic machine for writing code - a static compiler - and this is exactly what ARC does. You can implement something like ARC yourself. But if I tell you, I just use an existing, reliable, stable, well-designed and supported compiler implementation.
Also, without following Apple, this is not reasonable behavior if you want to develop Apple stuff. Unlike other platform holders such as Microsoft, Apple does not care about maintaining backward compatibility. If they donβt think that something is good, it will become obsolete and deleted in the end - for example, Objective-C GC.
source share