アプリであそぼう。こどもも、おとなも。

iPhoneプログラム基本からのおさらい その1「Hello! World!」

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