UIViewController private method doesn't behave as undocumented

Originator:craig.hockenberry
Number:rdar://7044974 Date Originated:July 9, 2009
Status:Open Resolved:
Product:iPhone SDK Product Version:3.0
Classification:Other Bug Reproducible:Always
 
Summary: 
The method attentionClassDumpUser:yesItsUsAgain:althoughSwizzlingAndOverridingPrivateMethodsIsFun:itWasntMuchFunWhenYourAppStoppedWorking:pleaseRefrainFromDoingSoInTheFutureOkayThanksBye: doesn't do anything.

Steps to Reproduce:

1) Use class-dump to add the following header to your project:

/*
 *     Generated by class-dump 3.1.1.
 *
 *     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2006 by Steve Nygard.
*/

#import <UIKit/UIViewController.h>
@interface UIViewController (UIViewControllerClassDumpWarning)
- (void)attentionClassDumpUser:(id)fp8 yesItsUsAgain:(id)fp12 althoughSwizzlingAndOverridingPrivateMethodsIsFun:(id)fp16 itWasntMuchFunWhenYourAppStoppedWorking:(id)fp20 pleaseRefrainFromDoingSoInTheFutureOkayThanksBye:(id)fp24;
@end

2) Call attentionClassDumpUser:yesItsUsAgain:althoughSwizzlingAndOverridingPrivateMethodsIsFun:itWasntMuchFunWhenYourAppStoppedWorking:pleaseRefrainFromDoingSoInTheFutureOkayThanksBye: from your code.

Expected Results:
Something dramatic. Flames shooting out of the dock connector would be nice.

Actual Results:
Nothing. I must admit I was disappointed.

Regression:
This feature is new to 3.0 SDK. You've brought a little joy into the lives of many iPhone developers with the addition of this category on UIViewController. Thank you.

Notes:
How can I break my code with your code if your code doesn't do anything that can break my code? I demand a refund.

Comments

-1. Works for me. My iPhone and hand are now very badly burned. I too demand a refund of the iPhone (and compensation for medical bills), but not for my SDK membership. This method works as unadvertised.

Too expensive!!!1!

This would be a great bug for, like, 99 cents.

Sad

This doesn't brick the device. FAIL. This breaks the Golden Rule of not surprising the user with change.

Different results

Invocation causes brown stripes to appear on my case.

Not reproducible on simulator.

Disappointed

No flames, no device restore, no launching of atomic weapons....

1 Star!

By kdbdallas at July 9, 2009, 9:37 p.m. (reply...)

Help, is it supposed to do this?

When I invoke it, it reboots my iPhone into Windows Mobile. I'm running Palm OS v. 3.1 with latest patches.

This method should work correctly until the next update, at which point it will make monkeys fly out of your butt.

disagree with the resolution

I don't think this is the right resolution. This method should do nothing, so that people use it, expecting nothingness (you can't imagine how many times I've looked for something that would do nothing! Not idle, just do nothing, in order to, say, have some delegate functions do nothing). Then once people get used to the nothingness, iPhoneOS 4.0 (which will feature multitaking and a solution to world hunger, in that order) will change it to email the contact info of the developer to the user, then make the iPhone spectacularly explode. Whammo!

This method is the new BOZOSLIVEHERE ( http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx ), it demands a book documenting it! Come to think of it, Erica will probably oblige in the next edition of her book.

By lebpierre at July 9, 2009, 8:17 p.m. (reply...)

Excellent find

I too can reproduce this. A fix is needed.

★★★★★

By kungfudan at July 9, 2009, 7:49 p.m. (reply...)

Also experiencing this issue

I can easily reproduce this in my project. I know Apple does not want us to use undocumented methods, so they should just document them. Especially UIWebView.

By samsoffes at July 9, 2009, 6:15 p.m. (reply...)

Easily Reproducible

I can easily reproduce this in my project. Please fix ASAP, we now depend on that API call in several projects.


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!