【objective-c】Objective-C 基本の速習トレーニング
公開日:
:
最終更新日:2013/06/25
objective-c
検索一発クンをiphoneに移植するにあたって、objective-cとxcodeの扱いに一番苦労しました。
ここでは他言語プログラマが、ゼロから始めるobjective-cの基本について一読できるコードを、備忘録として掲載します。
※XcodeのARCの使用を前提としています。
まずコード以前の話として、基本的にobjective-cではソースコードを宣言部と実装部の2つに分けて記述し、それぞれ
宣言部:ClassName.h
実装部:ClassName.m
という名前のファイルを作成します。
ClassName.h
#import <Foundation/Foundation.h> #import "OtherClass.h" #define CONST_VARIABLE @"value" //クラスの宣言 : @interface クラス名 : 継承クラス @interface ClassName : NSObject{ //プライベート変数の宣言 : 型* 変数名 NSString* privateStr; } //パブリック変数の宣言 : @property (retain) 型* 変数名 @property (retain) NSString* publicStr; //パブリックメソッドの宣言 //インスタンスメソッド //引数なし : -(返り値)メソッド名 - (void)instatnceMethod1; //引数1つ : -(返り値)メソッド名:(引数型*)引数名 - (void)instatnceMethod2:(NSArray*)arg1; //引数2つ : -(返り値)メソッド名:(引数型*)引数名 第二引数の説明:(型*)引数名 - (NSString*)instatnceMethod3:(NSString*)arg1 secondArg:(NSString*)arg2; //クラスメソッド : +(返り値)メソッド名 + (NSString*)classMethod; //宣言の終了 @end
ClassName.m
//ヘッダーファイルをインポート #import "ClassName.h" //プライベートメソッドの宣言 @interface ClassName() - (void) privateMethod; @end //宣言したクラスの実装を開始 @implementation ClassName //パブリック変数の宣言 @synthesize publicStr; //Javaのコンストラクタみたいなもの - (id)init { NSLog(@"SearchManager init"); if(self == [super init]) { //初期化処理 } return self; } //各メソッドの実装 - (void)instatnceMethod1{ } - (void)instatnceMethod2:(NSArray*)arg1{ } - (NSString*)instatnceMethod3:(NSString*)arg1 secondArg:(NSString*)arg2{ return [arg1 stringByAppendingString:arg2]; } + (NSString*)classMethod{ } - (void) privateMethod{ } //実装の終了 @end
このクラスを使用する際は下記のように書きます。
ClassName* className = [[ClassName alloc] init]; //パブリックメソッドを実行。返り値をstrに格納 NSString* str = [className instanceMethod3:@"arg1" secondArg:@"arg2"] //ログに出力 NSLog(@"output log message : %s", str);
その他、基本的だけどjava人間には分かりづらい表現集。
//NSNumberクラス : int,double,floatなど数値を一括して扱うクラス NSNumber* number = [NSNumber numberWithInt:3]; int intNum = [number intValue]; double doubleNum = [number doubleValue]; //文字列連結 NSString* str = [NSString stringWithFormat:@"%@ %d %lf", @"text", intNum, doubleNum]; //文字列長さ int length = [str length]; //切り取り str = [str substringWithRange:NSMakeRange(2, 3)]; //空白をトリム str = @" xxx "; str = [str09 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; //検索 str = @"あいうえお"; NSRange searchResult = [str rangeOfString:@"うえ"]; //検索(正規表現) searchResult = [str rangeOfString:@"[0-9]" options:NSRegularExpressionSearch]; if (searchResult.location == NSNotFound) { NSLog(@"見つかりません"); } else { printf("Position: %d, Length: %d です。¥n", searchResult.location, searchResult.length); } //置換 [str stringByReplacingOccurrencesOfString: @"あ" withString: @"か"] //比較 if( [str isEqualToString:@"かきくけこ"] ){ }
続く。。。
関連記事
-
-
【java】【objective-c】Java vs Objective-C 言語比較
Java人間がObjective-Cを勉強するにあたって一番苦労するのは文法に関するネーミングの違い
-
-
【objective-c】デリゲート[delegate]を実装する
デリゲートは「委譲」と訳され、クラスAで起きたイベントの処理をクラスBで実装する仕組みです。
-
-
【objective-c】シングルトンインスタンスを生成するクラスを定義する
あるクラスのインスタンスが常に1つのみ存在を許すような仕組みをシングルトンパターンといいます。
-
-
【objective-c】シングルトンパターン
MySingletone.h //クラスメソッドを定義 + (MySingletone*
-
-
【objective-c】正規表現
NSString* targetStr = @"19801231&qu
-
-
【objective-c】エラーメッセージとその実態
java人間にとってxcodeのコンソールが吐くログはナニヲイッテルノカワカラン。 なので、こんな