'iOS DidMoveToWindow Infinite Loop

I was looking into iOS NUI Framework source code. I spotted the following line of codes but I couldn't figured out how it worked

- (void)override_didMoveToWindow
{
    if (!self.isNUIApplied) {
        [self applyNUI];
    }
    [self override_didMoveToWindow];
}

Just to be clear, they swizzled out the original implementation of DidMoveToWindow with this method in order to apply the class/style at run time. What confused me was that the function above never caused any infinite loop.



Solution 1:[1]

Comment the line

//[self override_didMoveToWindow];

works for me

Solution 2:[2]

It looks like not a loop because it appears the author assumes that [self applyNUI] always changes the state so that self.isNUIApplied becomes == YES

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Kuldeep Singh
Solution 2 danh