(Or: What The Hell Is MPGobblerGestureRecognizer?)
Now that Apple has released iOS 6.1, I wanted to see whether the new OS version contained any exciting new APIs beside the rather meager additions in the public API diffs.
With the help of Nicolas Seriot’s excellent iOS Runtime Headers repository, I compiled a list of all API changes between iOS 6.1 and 6.0. In the following, I discuss the most interesting additions. It is not an exhaustive list of everything that changed.
The most interesting one to me is
MPGobblerGestureRecognizer, a UIGestureRecognizer subclass. To be honest, I don’t have the slightest idea what a “gobbler gesture” could be. If you know of a new gesture in iOS that is related to the media player or if you have any idea what kind of gesture this class is meant to detect, I’d love to hear from you.
Update February 5 and 7: Turns out that people have been speculating about the purpose of
UIGobblerGestureRecognizer, an undocumented class which was introduced in iOS 5.0 but I was unaware of, for quite some time.
BJ Homer believes
. In an interesting Twitter conversation, Filippo Bigarella and Conrad Kramer discovered that
UIGobblerGestureRecognizer is used to avoid recognition while animations are in progress. Otherwise, it’s inactive
UIGobblerGestureRecognizer can “gobble” touches in order to prevent other gesture recognizers from receiving them in certain situations. What situations those are, I don’t know.
_MPGlowLabel and MPScrollingTitlesView
_MPGlowLabel is a UILabel subclass with two additional properties,
glowRadius. Apple probably uses such a label in one or more places in its media player UI.
MPScrollingTitlesView seems to model a view that is used to display album and song titles in a scrolling marquee.
Other Media Player Changes
I was especially curious if Apple had added new functionality for remote view controllers in iOS 6.1. While the underlying APIs seem to be unchanged, I found at least a small change in wording in the iAd framework. A property of the
ADLocalViewController class, used to display full-screen iAd ads, was renamed from
The class got two new methods in iOS 6.1,
A large number of Core Data classes saw changes in iOS 6.1, albeit most of them quite small (such as the addition of a single method). As far as I can tell from names of the new methods, most changes are related to iCloud syncing. Whether this means that Core Data syncing over iCloud will work more reliably with iOS 6.1 is anybody’s guess.
NSPersistentStoreadded the method
NSSQLiteConnectionadded the method
PFUbiquitySetupAssistantadded the method
- Several classes got a new property of the type
PFUbiquityKnowledgeVector *. I have no idea what this class does.
_PFUbiquityRecordsImporteradded the methods
Lots of changes in PassKit, but the vast majority of them are rather less exciting class renamings from the old
WL prefix to the new
PK. Does anybody know what
WL stands for? Update: Eric Firestone bets WL stands for “Wallet”.
It’s hard to tell from the headers what data this new class encapsulates.
The CMMotionManager class got two new methods,
-rebuildGytt. I have no idea what they might do.
AirPlayDiagnostics is a new private framework in iOS. It contains these five classes:
Note that all links in this article to specific classes or frameworks inside the iOS Runtime Headers repository point to a specific commit (the iOS 6.1 version of these files). If you are reading this at a later date, the links might not reflect the current state of these APIs. ↩︎