LoginSignup
17
14

More than 5 years have passed since last update.

【ぶっちゃけiOSアプリ開発】手っ取り早くObjective-cを理解する | その1 ヘッダファイルと実装ファイル

Last updated at Posted at 2017-11-25

細かいことや例外的なことは後回しでいいので、手っ取り早くobjective-cを理解して使い始めたいという人向けです。他言語を経験していることが前提です。

ファイルの構成

ファイルには「.h」ヘッダファイルと「.m」実装ファイルがある。
書き方は以下の通り。

ヘッダファイルは@interface@endで囲む。

〜.h
#import ヘッダファイル

@interface クラス名 : スーパークラス

外部に公開する変数やメソッド

@end

実装ファイルは@implementation@endで囲む。

〜.m
#import ヘッダファイル

@implementation クラス名

変数やメソッドを実装

@end

ヘッダファイル

外部に公開するものが無いときは、何も書かなくてよい。
ViewControllerの場合は必要になったときに書けばよい。なので、ヘッダファイルを理解していなくてもUIアプリは組める。

ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController


@end

実装ファイル

ViewControllerの例で。

ViewController.m
#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

@end

デフォルトでviewDidLoadメソッドとdidReceiveMemoryWarningメソッドが実装されている。このように、@implementation@endの間に実体を書く。
自分でメソッドを作りたかったらこの中に追記する。

viewDidLoadメソッドはこの画面(ViewController)がつくられた時に呼び出されるメソッド。ViewControllerのメソッドについては別の記事で書く。

ヘッダファイル(続き)

もう一度、ヘッダファイルの書き方。

〜.h
#import ヘッダファイル

@interface クラス名 : スーパークラス

外部に公開する変数やメソッド

@end

外部に公開するものがあるときは、@interface@endの間に書く。

変数を公開する場合

QiitaTestという普通のクラスを作ったとして、公開する変数(プロパティ)を書く。

QiitaTest.h
#import <Foundation/Foundation.h>

@interface QiitaTest : NSObject

@property (nonatomic) NSInteger number; // 外部公開プロパティの宣言

@end

※プロパティとは
本来objective-cではインスタンス変数にはsetter/getterというメソッドを使ってアクセスする必要があるが、setter/getterメソッドをいちいち実装するのが面倒なので@propertyを使う。
変数(プロパティ)へのアクセス方法は別の記事で説明する。

※nonatomicとは
プロパティに特に制限を加えない場合はnonatomicを指定しておけばよい。書き込み禁止とか排他制御したい場合は別オプションを指定する。

メソッドを公開する場合

QiitaTest.h
@interface QiitaTest : NSObject

@property NSInteger number;

- (void)testMethod; // 外部公開メソッドの宣言

@end

メソッドの書き方と呼び出し方は別の記事で説明する。


ぶっちゃけiOSアプリ開発は、アプリ開発にあたってとりあえず知っておくべきことをズバリ書きます。例外はありますのでご了承ください。

17
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
14