Objective-C2.0文法メモ 基本事項いろいろ
Hello World
まずはプロジェクトを作成してみます。
File>New>New Project>Command Line Tool>"Next">プロジェクト名"Hello", Type:Foundation>パスを指定して"Create"
実行するとコンソールに"Hello World!"と表示されます。
main.m
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSLog(@"hello world!"); // ログを出力する return 0; }
ソースファイル
C,C++と同様にヘッダと実装部分に分けてます。
ヘッダは.hファイル, 実装を.mファイルに記述します。
ヘッダファイルのインクルード
#import <include/library.h> #import "library.h"
型・変数定義
objc.hでObjective-C専用の型や変数が定義されています。
boolean型
BOOL型を利用します。 ※ObjectiveC++としてboolを利用することもできる
BOOL condition = YES; condition = NO; // ちなみにobjc.hで以下のように定義されている #define YES BOOL(0) #define NO BOOL(1)
id型
全てのクラスの基底クラスを参照する型です。(JavaではObject型に相当する)
Foundation Framework
Objective-Cの基本的なクラスを集めたものがFoundation Frameworkです。これらのクラスには全て"NS~"という接頭辞がついています。Foundation.hをインクルードして使います。
#import <Foundation/Foundation.h>
最後に、peimitive型に近いクラスについて少しだけ触れておきます。
NSObject:オブジェクト型
全クラスの基底クラスを表すクラスがNSObjectです。C言語で定義されているid型が参照しているオブジェクトをObjective-Cで表現したクラスになります。
NSNumber:数値
数値を表すクラスがNSNumberです。型変換や文字列への変換に利用することができます。
// 数値を設定する NSNumber *number = [NSNumber numberWithFloat:3.14f]; // 数値を取得する int value = [number intValue]; // 文字列に変換する NSString* str = [number stringValue]; // コンソールに出力する NSLog(@"number:%@, string:%@", number, str);
(参考)扱うことができる数値一覧
NSNumber *bool_number = [NSNumber numberWithBool:YES]; NSNumber *char_number = [NSNumber numberWithChar:0]; NSNumber *uchar_number = [NSNumber numberWithUnsignedChar:0]; NSNumber *short_number = [NSNumber numberWithShort:0]; NSNumber *ushort_number = [NSNumber numberWithUnsignedShort:0]; NSNumber *int_number = [NSNumber numberWithInt:0]; NSNumber *uint_number = [NSNumber numberWithUnsignedInt:0]; NSNumber *long_number = [NSNumber numberWithLong:0]; NSNumber *ulong_number = [NSNumber numberWithUnsignedLong:0]; NSNumber *float_number = [NSNumber numberWithFloat:0.0f]; NSNumber *double_number = [NSNumber numberWithDouble:0.0]; NSNumber *llong_number = [NSNumber numberWithLongLong:0]; NSNumber *ullong_number = [NSNumber numberWithUnsignedLongLong:0];
NSString:文字列
文字列クラス
文字列を扱うNSStringクラスが用意されています。
NSString *str = @"hello"; NSLog(@"enter your word: %@",str);
フォーマット指定子で文字列を作成する例:
NSString *str = [NSString stringWithFormat:@"%d, %@ and %s ", 1, @"objc", "c"];
NSLog:ログ出力
コンソールにログを出力するにはNSLog関数を使います。フォーマット指定子も扱うことができます。
int num = 3; NSLog(@"num:%d",num);