iOS-最初のiPhoneアプリケーション
最初のアプリの作成
次に、iOSシミュレーターで実行される単純なシングルビューアプリケーション(空白のアプリ)を作成します。
手順は次のとおりです。
Step 1 − Xcodeを開き、選択します Create a new Xcode project。
Step 2 −選択 Single View Application。
Step 3 −製品名、つまりアプリケーションの名前、組織名、会社IDを入力します。
Step 4 −次のことを確認してください Use Automatic Reference Countingスコープ外になると、割り当てられたリソースを自動的に解放するために選択されます。[次へ]をクリックします。
Step 5 −プロジェクトのディレクトリを選択し、作成を選択します。
Step 6 −次のような画面が表示されます−
上の画面では、サポートされている向き、ビルド、リリースの設定を選択できます。サポートしたいデバイスバージョンであるフィールド展開ターゲットがあり、現在許可されている最小の展開ターゲットである4.3を選択できます。今のところ、これらは必須ではないので、アプリケーションの実行に焦点を当てましょう。
Step 7 −次に、[実行]ボタンの近くのドロップダウンでiPhoneシミュレーターを選択し、[実行]を選択します。
Step 8−それだけです。これで、最初のアプリケーションが正常に実行されました。次のような出力が得られます-
それでは、インターフェイスビルダーから始めるために、背景色を変更しましょう。ViewController.xibを選択します。右側の背景オプションを選択し、色を変更して実行します。
上記のプロジェクトでは、デフォルトで、展開ターゲットがiOS 6.0に設定され、自動レイアウトが有効になります。iOS 4.3以降のデバイスでアプリケーションを実行できるようにするために、このアプリケーションの作成時に展開ターゲットを既に変更していますが、自動レイアウトを無効にしませんでした。
自動レイアウトを無効にするには、各ペン先、つまりxibファイルのファイルインスペクターで自動レイアウトチェックボックスの選択を解除する必要があります。XcodeプロジェクトIDEのさまざまなセクションを次の図に示します(提供:Apple Xcode 4ユーザードキュメント)。
ファイルインスペクターは、上記のようにインスペクターセレクターバーにあり、自動レイアウトのチェックを外すことができます。自動レイアウトは、iOS6デバイスのみをターゲットにする場合に使用できます。また、展開ターゲットをiOS 6に上げると、通帳などの多くの新機能を使用できるようになります。とりあえず、展開ターゲットとしてiOS4.3を使い続けましょう。
最初のiOSアプリケーションのコード
アプリケーション用に生成された5つの異なるファイルがあります。それらは次のようにリストされています-
- AppDelegate.h
- AppDelegate.m
- ViewController.h
- ViewController.m
- ViewController.xib
AppDelegate.h
// Header File that provides all UI related items.
#import <UIKit/UIKit.h>
// Forward declaration (Used when class will be defined /imported in future)
@class ViewController;
// Interface for Appdelegate
@interface AppDelegate : UIResponder <UIApplicationDelegate>
// Property window
@property (strong, nonatomic) UIWindow *window;
// Property Viewcontroller
@property (strong, nonatomic) ViewController *viewController;
//this marks end of interface
@end
Important items in code −
AppDelegateは、iOSイベントを処理するUIResponderから継承します。
UIApplicationDelegateのデリゲートメソッドを実装します。これは、起動の完了、終了間近などの主要なアプリケーションイベントを提供します。
iOSデバイス画面のさまざまなビューを管理および調整するためのUIWindowオブジェクト。これは、他のすべてのビューがロードされるベースビューのようなものです。通常、アプリケーションのウィンドウは1つだけです。
画面フローを処理するUIViewController。
AppDelegate.m
// Imports the class Appdelegate's interface
import "AppDelegate.h"
// Imports the viewcontroller to be loaded
#import "ViewController.h"
// Class definition starts here
@implementation AppDelegate
// Method to intimate us that the application launched successfully
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc]
initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
/* Use this method to release shared resources, save user data,
invalidate timers, and store enough application state information
to restore your application to its current state in case it is
terminated later. If your application supports background
execution, this method is called instead of
applicationWillTerminate: when the user quits.*/
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
/* Called as part of the transition from the background to the
inactive state. Here you can undo many of the changes made on
entering the background.*/
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
/* Restart any tasks that were paused (or not yet started) while
the application was inactive. If the application was previously in
the background, optionally refresh the user interface.*/
}
- (void)applicationWillTerminate:(UIApplication *)application {
/* Called when the application is about to terminate. Save data if
appropriate. See also applicationDidEnterBackground:. */
}
- (void)applicationWillTerminate:(UIApplication *)application {
/* Called when the application is about to terminate. Save data if appropriate.
See also applicationDidEnterBackground:. */
}
@end
Important items in code −
UIApplicationデリゲートはここで定義されます。上記で定義されたすべてのメソッドはUIアプリケーションデリゲートであり、ユーザー定義のメソッドは含まれていません。
UIWindowオブジェクトは、割り当てられたアプリケーションを保持するために割り当てられます。
UIViewControllerは、ウィンドウの初期ビューコントローラーとして割り当てられます。
ウィンドウを表示するには、makeKeyAndVisibleメソッドを呼び出します。
ViewController.h
#import <UIKit/UIKit.h>
// Interface for class ViewController
@interface ViewController : UIViewController
@end
Important items in code −
ViewControllerクラスは、iOSアプリケーションの基本的なビュー管理モデルを提供するUIViewControllerを継承します。
ViewController.m
#import "ViewController.h"
// Category, an extension of ViewController class
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Important items in code −
ここで実装されている2つのメソッドは、基本クラスUIViewControllerで定義されています。
ビューのロード後に呼び出されるviewDidLoadで初期設定を行います。
メモリ警告の場合、didReceiveMemoryWarningメソッドが呼び出されます。