Смысл кода заключается в том, чтобы заставить объект освободиться прямо сейчас, независимо от того, какими могут быть будущие последствия.(И это будет иметь последствия!)
Код фатально ошибочен, потому что он не учитывает тот факт, что кто-то на самом деле «владеет» этим объектом.Другими словами, что-то «выделило» этот объект и любое количество других вещей, возможно, «сохранило» этот объект (возможно, структура данных, такая как NSArray, может быть пул автоматического выпуска, может быть, некоторый код на стековом кадре, который просто «сохраняет»);все эти вещи имеют право собственности на этот объект.Если объект совершает самоубийство (что и делает releaseMySelf), эти «владельцы» внезапно указывают на плохую память, и это приведет к неожиданному поведению.
Надеюсь, код, написанный таким образом, просто потерпит крах.Возможно, первоначальный автор избежал этих сбоев, потеряв память в другом месте.