*

【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:@"かきくけこ"] ){
}

続く。。。

関連記事

no image

【objective-c】正規表現

NSString* targetStr = @"19801231&qu

記事を読む

no image

【objective-c】エラーメッセージとその実態

java人間にとってxcodeのコンソールが吐くログはナニヲイッテルノカワカラン。 なので、こんな

記事を読む

no image

【objective-c】デリゲート[delegate]を実装する

デリゲートは「委譲」と訳され、クラスAで起きたイベントの処理をクラスBで実装する仕組みです。

記事を読む

no image

【objective-c】シングルトンインスタンスを生成するクラスを定義する

あるクラスのインスタンスが常に1つのみ存在を許すような仕組みをシングルトンパターンといいます。

記事を読む

no image

【objective-c】シングルトンパターン

MySingletone.h //クラスメソッドを定義 + (MySingletone*

記事を読む

no image

【java】【objective-c】Java vs Objective-C 言語比較

Java人間がObjective-Cを勉強するにあたって一番苦労するのは文法に関するネーミングの違い

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

no image
知らないと損をする6つのライセンスまとめ

オープンソースやフリーウェア、フリー素材などが巷に溢れ、それらを利用す

no image
ガリレオ:ニュースブラウザをリリースしました。

概要 ガリレオはニュースを読んだり、検索する機能に特化したブラウザア

no image
【android】Activityとプロセスのライフサイクル

またもやライフサイクル周りでハマったのですが、Androidのライフサ

→もっと見る

PAGE TOP ↑