Skip to content

Instantly share code, notes, and snippets.

@michaeldv
Created November 28, 2012 04:59

Revisions

  1. Michael Dvorkin revised this gist Nov 30, 2012. 2 changed files with 48 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions app_delegate.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,9 @@
    class AppDelegate
    def application(application, didFinishLaunchingWithOptions:launchOptions)
    @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
    @window.rootViewController = HelloController.alloc.init
    @window.rootViewController.wantsFullScreenLayout = true
    @window.makeKeyAndVisible
    true
    end
    end
    39 changes: 39 additions & 0 deletions hello_controller.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@
    class HelloController < UIViewController
    def viewDidLoad
    self.view.backgroundColor = UIColor.whiteColor

    app = UIApplication.sharedApplication

    # Documented statusBarHidden causes NoMethodError exception:
    NSLog "statusBarHidden #{app.statusBarHidden.inspect}"
    #
    # (main)> 2012-11-29 18:13:38.660 bug[4380:11303] hello_controller.rb:6:in `viewDidLoad': undefined method `statusBarHidden' for #<UIApplication:0x9454ee0> (NoMethodError)
    # from app_delegate.rb:6:in `application:didFinishLaunchingWithOptions:'
    # 2012-11-29 18:13:38.662 bug[4380:11303] *** Terminating app due to uncaught exception 'NoMethodError', reason: 'hello_controller.rb:6:in `viewDidLoad': undefined method `statusBarHidden' for #<UIApplication:0x9454ee0> (NoMethodError)
    # from app_delegate.rb:6:in `application:didFinishLaunchingWithOptions:'
    #

    # Undocumented statusBarHidden? works fine,
    NSLog "statusBarHidden? #{app.statusBarHidden?.inspect}"

    # Documented idleTimerDisabled causes NoMethodError exception:
    NSLog "idleTimerDisabled #{app.idleTimerDisabled.inspect}"
    #
    # 2012-11-29 18:18:35.909 bug[4521:11303] hello_controller.rb:20:in `viewDidLoad': undefined method `idleTimerDisabled' for #<UIApplication:0x76237f0> (NoMethodError)
    # from app_delegate.rb:6:in `application:didFinishLaunchingWithOptions:'
    # 2012-11-29 18:18:35.911 bug[4521:11303] *** Terminating app due to uncaught exception 'NoMethodError', reason: 'hello_controller.rb:20:in `viewDidLoad': undefined method `idleTimerDisabled' for #<UIApplication:0x76237f0> (NoMethodError)
    # from app_delegate.rb:6:in `application:didFinishLaunchingWithOptions:'
    #

    # Undocumented idleTimerDisabled? works fine.
    NSLog "idleTimerDisabled? #{app.idleTimerDisabled?.inspect}"

    # Same story with networkActivityIndicatorVisible vs. networkActivityIndicatorVisible?
    NSLog "networkActivityIndicatorVisible #{app.networkActivityIndicatorVisible.inspect}" # Fails (documented).
    NSLog "networkActivityIndicatorVisible? #{app.networkActivityIndicatorVisible?.inspect}" # Passes (undocumented)

    ### However:
    NSLog "applicationSupportsShakeToEdit #{app.applicationSupportsShakeToEdit.inspect}" # Passes (documented).
    NSLog "applicationSupportsShakeToEdit? #{app.applicationSupportsShakeToEdit?.inspect}" # Fails (undocumented)
    end
    end
  2. Michael Dvorkin created this gist Nov 28, 2012.
    20 changes: 20 additions & 0 deletions app.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    app = UIApplication.sharedApplication

    NSLog "statusBarHidden #{app.statusBarHidden.inspect rescue nil}" # fails (documented)
    NSLog "statusBarHidden? #{app.statusBarHidden?.inspect rescue nil}" # passes (undocumented)
    NSLog "idleTimerDisabled #{app.idleTimerDisabled.inspect rescue nil}" # fails (documented)
    NSLog "idleTimerDisabled? #{app.idleTimerDisabled?.inspect rescue nil}" # passes (undocumented)
    NSLog "networkActivityIndicatorVisible #{app.networkActivityIndicatorVisible.inspect rescue nil}" # fails (documented)
    NSLog "networkActivityIndicatorVisible? #{app.networkActivityIndicatorVisible?.inspect rescue nil}" # passes (undocumented)

    ### However:

    NSLog "applicationSupportsShakeToEdit #{app.applicationSupportsShakeToEdit.inspect rescue nil}" # passes (documented)
    NSLog "applicationSupportsShakeToEdit? #{app.applicationSupportsShakeToEdit?.inspect rescue nil}" # fails (undocumented)

    ### Also a small inconstancy when running from RM console:

    (main)> app = UIApplication.sharedApplication
    => #<UIApplication:0x9315b90>
    (main)> app.statusBarHidden?
    => 0 # <-- Displays 0 or 1 instead of true or false