iPhoneプログラム基本からのおさらい その1「Hello! World!」
iPhoneアプリとiPadアプリを10本リリースした後でなんですが、未だにあまりiPhoneプログラミングを理解したとはいいがたい状態の私です。
これではイカン!と思ったので、これから基本的なプログラムをちょいちょい作ることで、
基本的なことからおさらいをしてみようと思います。
その第1弾としては、やはり「Hello! World!」以外にはないでしょう。
ということで作ってみました。
Hello_WorldAppDelegate.h
[c]
/*
アプリケーション起動時と終了時に実行されるクラスだよ
*/
// ユーザーインターフェースのフレームワークを読み込み
#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
[/c]
Hello_WorldAppDelegate.m
[c]
// 自分のヘッダーファイルを読み込み
// また、ヘッダーで宣言したクラスのヘッダーファイルも読み込み
#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
[/c]
Hello_WorldViewController.h
[c]
// メインのビュークラス
// ユーザーインターフェースのフレームワークを読み込み
#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
[/c]
Hello_WorldViewController.m
[c]
#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
[/c]