- iOS 2.0+
- macOS 10.0+
- tvOS 9.0+
- watchOS 2.0+
Your application cannot either create or explicitly manage
NSRunLoop objects. Each
NSThread object—including the application’s main thread—has an
NSRunLoop object automatically created for it as needed. If you need to access the current thread’s run loop, you do so with the class method currentRunLoop.
Note that from the perspective of
NSTimer objects are not "input"—they are a special type, and one of the things that means is that they do not cause the run loop to return when they fire.