iPhoneアプリとiPadアプリを10本リリースした後でなんですが、未だにあまりiPhoneプログラミングを理解したとはいいがたい状態の私です。
これではイカン!と思ったので、これから基本的なプログラムをちょいちょい作ることで、
基本的なことからおさらいをしてみようと思います。
その第1弾としては、やはり「Hello! World!」以外にはないでしょう。
ということで作ってみました。
Hello_WorldAppDelegate.h
/* アプリケーション起動時と終了時に実行されるクラスだよ */ // ユーザーインターフェースのフレームワークを読み込み #import <UIKit/UIKit.h> // 他の場所にあるクラスを使用するため、クラスとして宣言 @class Hello_WorldViewController; // Hello_WorldAppDelegateクラスの宣言 @interface Hello_WorldAppDelegate : NSObject <UIApplicationDelegate> { /* <UIApplicationDelegate>はプロコトルといて読みこんでいる。 プロコトルとは、メソッドの宣言だけの継承のこと。 つまり、実装は自分でする必要がある。 */ // インスタンス変数宣言 // インスタンス変数の型がクラスオブジェクト型(紫色)の場合、 // 宣言で変数名のアタマに*をつける。 UIWindow *window; Hello_WorldViewController *viewController; int pokemon; } // アクセッサー @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet Hello_WorldViewController *viewController; @end
Hello_WorldAppDelegate.m
// 自分のヘッダーファイルを読み込み // また、ヘッダーで宣言したクラスのヘッダーファイルも読み込み #import "Hello_WorldAppDelegate.h" #import "Hello_WorldViewController.h" @implementation Hello_WorldAppDelegate // アクセッサー @synthesize window; @synthesize viewController; #pragma mark - #pragma mark Application lifecycle // アプリケーションが起動したら実行 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Add the view controller's view to the window and display. // ヘッダーで指定したHello_WorldViewController型のインスタンス変数をサブビューとして指定 [self.window addSubview:viewController.view]; // サブビューを可視化する [self.window makeKeyAndVisible]; return YES; } // アプリケーションがアクティブでなくなる直前に実行 1 - (void)applicationWillResignActive:(UIApplication *)application { } // アプリケーションがアクティブでなくなる直前に実行 2 - (void)applicationDidEnterBackground:(UIApplication *)application { } // アプリケーションが復帰した直後 1 - (void)applicationWillEnterForeground:(UIApplication *)application { } // アプリケーションが復帰した直後 2 - (void)applicationDidBecomeActive:(UIApplication *)application { } // なんじゃこりゃ - (void)applicationWillTerminate:(UIApplication *)application { } #pragma mark - #pragma mark Memory management - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { } // メモリ解放 - (void)dealloc { [viewController release]; [window release]; [super dealloc]; } @end
Hello_WorldViewController.h
// メインのビュークラス // ユーザーインターフェースのフレームワークを読み込み #import <UIKit/UIKit.h> // UIViewControllerクラスを継承したビュークラス @interface Hello_WorldViewController : UIViewController { // アウトレットとして使用するインスタンス変数 IBOutlet UILabel *hello; } // プロパティ @property (nonatomic,retain) IBOutlet UILabel *hello; // アクション - (IBAction) onHello; - (IBAction) offHello; - (IBAction) iyan; @end
Hello_WorldViewController.m
#import "Hello_WorldViewController.h" @implementation Hello_WorldViewController; @synthesize hello; - (void) onHello { self.hello.text = @"Hello! World!"; } - (void) offHello { self.hello.text = @""; } - (void) iyan { self.hello.text = @"いやんばかん"; } /* // ビュー読み込み時に実行 // nibを使わないときはこちらを使用 - (void)loadView { } */ /* // ビュー読み込み時に実行 // nibを使うときはこちらを使用 - (void)viewDidLoad { [super viewDidLoad]; } */ /* //横向きアプリや、傾きを固定したりするときに - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } */ //メモリーがなんかえらいことになったら実行 - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } // ビュー消去時に実行 - (void)viewDidUnload { } // メモリ解放 - (void)dealloc { [super dealloc]; } @end
コメント