RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool
daringfireball.net
daringfireball.net
Although the API was never called, the static analyzer throws a flag when you override any private framework. Joe was doing this for some debugging purposes and accidentally let it through for some release builds a while ago. Just updating to the newest Three20 should fix it.
http://github.com/facebook/three20/commit/8183ae25528bbc575a...
See http://github.com/facebook/three20/commit/c62a4cfd26c19d9248...
Waiting 2 weeks for an Apple reviewer to press the "run static analyzer" button sucks.
Who cares whether a method was overridden or called or whatever -- if it's in the runtime it can be invoked.
API's aren't hidden to make developers lives harder, but rather because they may not be stable and may or may not exist in future releases. And if they do exist, they may not do the same thing anymore.
So, users care. Not about the method itself, but about why their app that they may have paid money for has stopped working after they upgraded their iPhone.
To your second point, even apps that stick to using only documented API methods have known to fail after iPhone OS upgrades. So, let's not delude ourselves (or the users) into thinking we're writing robust (or worse, future proof) software simply by adhering to Apple's guidelines. All I would ask from Apple is that they get out of my way of getting an update to my users as quickly as I can.
I don't see why you would override a method but never call it, and if you override it, shouldn't you call [super methodX] (thereby calling the private method)?
Why do you iPhone guys put up with arbitrary restrictions?