【Xcode】NSStringのメソッド一覧をまとめてみた。

Stander Loves Apple

Stander Loves Apple by Daniel Williams, on Flickr

iPhoneのアプリ制作しようかといろいろ調べてみます。Objective-Cという言語を使います。Objective-Cは、オブジェクト指向の言語なので、クラスがどのようなことをしてくれるのか知ることが重要です。文字列を使うクラスNSStringのメソッド一覧の一覧です。Xcode 4.6.3です。メソッド名の前についている「+」は、クラスメソッド、「-」はインスタンスメソッドです。

NSStringとは

文字列を扱う標準のクラスです。Unicodeの文字列操作、設定した書式での文字列の作成、文字列の比較、検索と置換などができます。NSStringのメソッドは、Foundation/NSString.hで宣言されています。

NSObjet > NSString

文字を作って初期値にセットしてくれるメソッドです。

+ string 空の文字を返してくれます。
– init 文字を含まない初期化されたNSStringオブジェクトを返してくれます。
– initWithBytes:length:encoding: 指定したエンコードに応じた指定したバイト数のバイト列を返してくれます。
– initWithBytesNoCopy:length:encoding:freeWhenDone: 指定したエンコードに応じた指定したバイト数のバイト列を初期値にセットされたNSStringオブジェクトを返してくれます。オプションでバッファに使われているメモリーを開放してくれます。
– initWithCharacters:length: 指定したC言語ユニコード文字配列から文字数を含むNSStringオブジェクトを返してくれます。
– initWithCharactersNoCopy:length:freeWhenDone: 指定したC言語ユニコード文字配列から文字数を含むNSStringオブジェクトを返してくれます。オプションでバッファに使われているメモリーを開放してくれます。
– initWithString: 指定した文字列から文字をコピーして初期値にセットしたNSStringオブジェクトを返してくれます。
– initWithCString:encoding: 指定したエンコードに応じたC言語の文字配列を初期値にセットしたNSStringオブジェクトを返してくれます。
– initWithUTF8String: UTF-8でエンコードされたC言語の文字配列をコピーを初期値にセットしたNSStringオブジェクトを返してくれます。
– initWithFormat: 指定した書式文字列を初期値にセットしたNSStringオブジェクトを返してくれます。
– initWithFormat:arguments: 指定した可変引数リストva_listを使い書式文字列を初期値にセットしたNSStringオブジェクトを返してくれます。
– initWithFormat:locale: 指定したローカル情報に応じた指定した書式文字列を初期値にセットしたNSStringオブジェクトを返してくれます。
– initWithFormat:locale:arguments: 指定したローカル情報に応じた可変引数リストva_listを使い書式文字列を初期値にセットしたNSStringオブジェクトを返してくれます。
– initWithData:encoding: 指定されたエンコードを使ったユニコード文字から変換されたデータを初期値にセットしたNSStringオブジェクトを返してくれます。
+ stringWithFormat: 書式を指定して作成した文字列を返してくれます。
+ localizedStringWithFormat: ローカル情報にあった指定した書式で作成した文字列を返してくれます。
+ stringWithCharacters:length: 指定したC言語のユニコード文字配列から指定した文字数を含む文字列を返してくれます。
+ stringWithString: 指定された文字列から文字をコピーして作られた文字列を返してくれます。
+ stringWithCString:encoding: 指定したエンコードに応じたC配列にあるバイトを含む文字列を返してくれます。
+ stringWithUTF8String: 指定されたUTF-8エンコードされたC配列からデータをコピーして作成された文字列を返してくれます。

ファイルから文字列を作成してくれます。

+ stringWithContentsOfFile:encoding:error: エンコードを指定してファイルからテキストデータを読み込んで文字列を作成してくれます。
– initWithContentsOfFile:encoding:error: エンコードを指定してファイルからテキストデータを読み込んで文字列を作成してくれます。
+ stringWithContentsOfFile:usedEncoding:error: ファイルに使われているエンコーディングを参照することによって指定されたパスのファイルからデータを読み取り文字列を作成してくれます。
– initWithContentsOfFile:usedEncoding:error: 文字に使われているエンコーディングを参照することによって指定されたパスのファイルからデータを読み取り文字列を作成してくれます。

URLから文字列を作成してくれます。

+ stringWithContentsOfURL:encoding:error: エンコードを指定してURLからデータを読み込んで文字列を作成してくれます。
– initWithContentsOfURL:encoding:error: エンコードを指定してURLからデータを読み込んで文字列を作成してくれます。
+ stringWithContentsOfURL:usedEncoding:error: データに使われているエンコーディングを参照することによって指定されたURLからデータを読み取り文字列を作成してくれます。
– initWithContentsOfURL:usedEncoding:error: データに使われているエンコーディングを参照することによって指定されたURLからデータを読み取り文字列を作成してくれます。

ファイルに書き込みます。

– writeToFile:atomically:encoding:error: パス指定してファイルに文字を書き込みます。
– writeToURL:atomically:encoding:error: URLを指定してファイルに書き込みます。

+ string

[code]

//空の文字列を返します。

NSString *str = [NSString string];
NSLog(@"str = %@",str);

[/code]

//結果はもちろん空です。
str =

一覧へ

– init

[code]

//allocでNSStringクラスからインスタンスをつくり、空の文字列を初期値にセットできます。

NSString *str = [[NSString alloc]init];
NSLog(@"str = %@",str);

[/code]

//結果はもちろん空です。
str =

一覧へ

– initWithBytes:length:encoding:

[code]

//仮に14バイトの文字があるとします。
char bytes[14] = "testCharacters";

//UTF8エンコードされた文字を指定したバイト数文の文字を返してくれます。
NSString *str = [[NSString alloc]initWithBytes:bytes length:7 encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);

[/code]

//結果は7バイト分の文字列を返してくれます。
str = testCha

一覧へ

– initWithCharacters:length:

[code]

//ユニコード文字があるとします。
unichar bytes[4] = {
    0x0041,/A
    0x0042,/B
    0x0043,/C
    0x0044,/D
};

//ユニコード文字から指定した2文字分を返してくれます。
NSString *str = [[NSString alloc]initWithCharacters:bytes length:2];
NSLog(@"str = %@",str);

[/code]

//結果
str = AB

一覧へ

– initWithString:

[code]

//文字列のコピーを作成してくれます
NSString *str = [[NSString alloc]initWithString:@"test"];
NSLog(@"str = %@",str);

[/code]

//結果
str = test

一覧へ

– initWithCString:encoding:

[code]

char bytes[5] = "test";

//Cの文字列から文字列を作成してくれます
NSString *str = [[NSString alloc]initWithCString:bytes encoding:NSUTF8StringEncoding];
NSLog(@"str = %@",str);

[/code]

//結果
str = test

一覧へ

– initWithUTF8String:

[code]

char bytes[5] = "test";

//「UTF-8」の文字列から文字列を作成してくれます
NSString *str = [[NSString alloc]initWithUTF8String:bytes];

NSLog(@"str = %@",str);

[/code]

//結果
str = test

一覧へ

– initWithFormat:

[code]

//書式を設定して文字列を作成してくれます。
NSString *str = [[NSString alloc]initWithFormat:@"%d %@", 1234,@"test"];
NSLog(@"str = %@",str);

[/code]

//結果
str = 1234test

一覧へ

+ stringWithFormat:

[code]

//書式を設定して文字列を作成してくれるクラスメソッドです。
NSString *str = [NSString stringWithFormat:@"%@ %d",@"test",1234];
NSLog(@"str = %@",str);

[/code]

//結果
str = test1234

一覧へ

+ stringWithString:

[code]

//指定した文字列をコピーして文字列を作成してくれます。
NSString *str = [NSString stringWithString:@"test"];
NSLog(@"str = %@",str);

[/code]

[code]

//こう書けと出てきます。
NSString *str = @"test";
NSLog(@"str = %@",str);

[/code]

//結果
str = test

一覧へ

+ stringWithContentsOfFile:encoding:error:

まずtest.txtというファイルが、/user/Documents/test.txtという場所にあるとします。

text.txtの中身
[code]

Reading file test

[/code]

[code]

NSString *str, *path;
NSError *error;

//パスを取得します。
path = [@"//user/Documents/test.txt" stringByExpandingTildeInPath];

//ファイルパス、エンコード、エラーを指定してファイルから文字を作成します。
str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",str);

[/code]

//結果
str = Reading file test

一覧へ

– initWithContentsOfFile:encoding:error:

まずtest.txtというファイルが、/user/Documents/test.txtという場所にあるとします。

text.txtの中身
[code]

Reading file test

[/code]

[code]

NSString *path;
NSError *error;

//パスを取得する
path = [@"/Users/ocean/Documents/test.txt" stringByExpandingTildeInPath];

NSString *str = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",str);

[/code]

//結果
str = Reading file test

一覧へ

+ stringWithContentsOfURL:encoding:error:

[code]

NSString *str;
NSError *error;

//URLを取得する
NSURL *url = [NSURL URLWithString:@"http://sector28.net"];

//エンコードとエラーを設定してURLから文字列を作成してくれます。
str = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",str);

[/code]

//結果(URL先のhtml文が結果として表示されます。)
str = <!–[if IE 7]>….

一覧へ

– writeToFile:atomically:encoding:error:

まずtest.txtというファイルが、/user/Documents/test.txtという場所にあるとします。

[code]

NSString *str = @"test";

NSString *path;
path = [@"/Users/Documents/test.txt" stringByExpandingTildeInPath];

BOOL b;

b = [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"success to write the file %d", b);

[/code]

success to write the file 1

test.txtの中身
[code]

test

[/code]

一覧へ

– writeToURL:atomically:encoding:error:

まずtest.txtというファイルが、/user/Documents/test.txtという場所にあるとします。URLは、ローカルのファイルのパスも指定できます。

[code]

NSString *str = @"test";
NSString *path;

path = [@"/Users/ocean/Documents/test.txt" stringByExpandingTildeInPath];

BOOL b;

//ローカルのファイルパスを指定します。
NSURL *url = [NSURL fileURLWithPath:path];
b = [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"success to write the file %d", b);

[/code]

success to write the file 1

test.txtの中身
[code]

test

[/code]

一覧へ

コメントを残す