細かいことや例外的なことは後回しでいいので、手っ取り早くobjective-cを理解して使い始めたいという人向けです。他言語を経験していることが前提です。
#ファイルの構成
ファイルには「.h」ヘッダファイルと「.m」実装ファイルがある。
書き方は以下の通り。
ヘッダファイルは@interface〜@endで囲む。
#import ヘッダファイル
@interface クラス名 : スーパークラス
外部に公開する変数やメソッド
@end
実装ファイルは@implementation〜@endで囲む。
#import ヘッダファイル
@implementation クラス名
変数やメソッドを実装
@end
##ヘッダファイル
外部に公開するものが無いときは、何も書かなくてよい。
ViewControllerの場合は必要になったときに書けばよい。なので、ヘッダファイルを理解していなくてもUIアプリは組める。
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
##実装ファイル
ViewControllerの例で。
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
デフォルトでviewDidLoadメソッドとdidReceiveMemoryWarningメソッドが実装されている。このように、@implementation〜@endの間に実体を書く。
自分でメソッドを作りたかったらこの中に追記する。
viewDidLoadメソッドはこの画面(ViewController)がつくられた時に呼び出されるメソッド。ViewControllerのメソッドについては別の記事で書く。
##ヘッダファイル(続き)
もう一度、ヘッダファイルの書き方。
#import ヘッダファイル
@interface クラス名 : スーパークラス
外部に公開する変数やメソッド
@end
外部に公開するものがあるときは、@interface〜@endの間に書く。
###変数を公開する場合
QiitaTestという普通のクラスを作ったとして、公開する変数(プロパティ)を書く。
#import <Foundation/Foundation.h>
@interface QiitaTest : NSObject
@property (nonatomic) NSInteger number; // 外部公開プロパティの宣言
@end
※プロパティとは
本来objective-cではインスタンス変数にはsetter/getterというメソッドを使ってアクセスする必要があるが、setter/getterメソッドをいちいち実装するのが面倒なので@propertyを使う。
変数(プロパティ)へのアクセス方法は別の記事で説明する。
※nonatomicとは
プロパティに特に制限を加えない場合はnonatomicを指定しておけばよい。書き込み禁止とか排他制御したい場合は別オプションを指定する。
###メソッドを公開する場合
@interface QiitaTest : NSObject
@property NSInteger number;
- (void)testMethod; // 外部公開メソッドの宣言
@end
メソッドの書き方と呼び出し方は別の記事で説明する。
ぶっちゃけiOSアプリ開発は、アプリ開発にあたってとりあえず知っておくべきことをズバリ書きます。例外はありますのでご了承ください。