Showing posts with label nib. Show all posts
Showing posts with label nib. Show all posts

Friday, June 3, 2011

Reading Notes: Protocol Syntax (<, >) and Initialization




page 166 Goldstein goes through app initialization

I remembered what the < and > are for! They refer to protocol's. Protocols are a new concept for me. I keep thinking of C3PO in Star Wars telling Luke that he's a protocol droid. Which is REALLY not helpful.

A search on the syntax characters plus the word 'protocol' turned up the following in

http://en.wikipedia.org/wiki/Objective-C

- (void)setMyValue:(id)foo;
In the above statement, foo may be of any class.
- (void)setMyValue:(id<aProtocol>)foo;
In the above statement, foo may still be an instance of any class, but the class must conform to the aProtocol protocol.

.....

So when I look at the initialization code for the DeepThoughtsAppDelegate.h file and I see the line

@interface DeepThoughtsAppDelegate:NSObject <UIApplicationDelegate>

that must mean that MY AppDelegate class (DeepThoughtsAppDelegate), that I'm setting up here is 

* A subclass of NSObject AND
* Will conform to the UIApplicationDelegate protocol


Another basic syntax link
http://en.wikibooks.org/wiki/Objective-C_Programming/syntax
...
I NEED TO REMEMBER to double check on the use of "@class", which is not in the current book. 
I THINK it just means that I can use the DeepThoughtsViewController class from here

//  DeepThoughtsAppDelegate.h
//  DeepThoughts
//
//  Created by xxxxx on 5/30/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import <UIKit/UIKit.h>

@class DeepThoughtsViewController;

@interface DeepThoughtsAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    DeepThoughtsViewController *viewController;
}
Other things I'm interpreting this code as doing is
declaring two instance variables window and viewController that will be part of the DeepThoughtsAppDelegate class. The window ivar is of type UIWindow and the viewController ivar inheirits from DeepThoughtsViewController (probably why I need to put that @class statement in)
* * *
A little less mystery about the code now



Reading Notes: Main Window Nib File, Interface Objects


Goldstein's iPad Apps Development Book page 164

Interface Builder has been a bit of a challenge to me. I'm working to start over with it and get a better idea of how to draw the connections between the objects I put into the View window and the various Main Window interface objects.

So what is in the Main Window?

  1. File's Owner, A Proxy Object
    1. class UIApplication
    2. created by UIApplicationMain object before the nib file is loaded
  2. First Responder, Proxy Object
    1. First entry in application responder chain
    2. points to object user currently interacting with
  3. Window
  4. Instance of (DeepThoughts*)AppDelegate set to be the app delegate
    1. Code that restores app after launch to it's previous state
    2. Performs any custom application initialization
  5. Instance of (DeepThoughts)ViewController set to be apps view controller
    1. Where I put code to control the view of my apps (ch 10)

* DeepThoughts in current book tutorial