not good but great

プログラミング、アート、映画・本の感想について書きます。

Objective-Cで文字列処理、配列の使い方を学習する

文字列

連結

NSString *hoge = @"hogehoge";
NSString *foo = @"foofoo";
NSString *name = [hoge stringByAppendingString:foo];
NSLog(@"%@",name);//hogehogefoofoo

stringByAppendingStringを使用して連結を行います。

文字数

NSString *hoge = @"hogehoge";
NSInteger num = [hoge length];
NSLog(@"%d文字",num);//8文字

lengthメソッドを用います。

配列(要素数固定)

宣言の仕方

NSArray *manga = @[@"naruto",@"jojo",@"gorugo13"];
NSLog(@"manga = %@",manga);
/*
manga = (
    naruto,
    jojo,
    gorugo13
)
*/

NSArrayを使用します。

要素はオブジェクトに変換

NSArray *nums = @[@16,@5,@25,@54];
NSLog(@"nums = %@",nums);
/*
nums = (
    16,
    5,
    25,
    54
)
*/

配列に入れることができるのはオブジェクトのみであることに注意が必要です。数値やBOOLはオブジェクトではないので、「@」をつけてNSNumberクラスの数値オブジェクトに変換する必要があります。

配列(要素数可変)

要素の追加

NSMutableArray *devices = [NSMutableArray array];
[devices addObject:@"iPod"];
[devices addObjectsFromArray:@[@"iPod",@"iPhone"]];
NSLog(@"devices = %@",devices);
/*
devices = (
    iPod,
    iPod,
    iPhone
)
*/

NSMutableArrayクラスを使用します。addObjectで追加、addObjectsFromArrayで配列を追加することが出来ます。

数値はオブジェクトに変換

NSMutableArray *randomlist = [NSMutableArray array];
NSInteger v;
for(int i = 0; i < 10;i++){
    v = arc4random() % 10;
    [randomlist addObject:@(v)];
}
NSLog(@"randomlist = %@",randomlist);
/*
randomlist = (
    1,
    1,
    5,
    0,
    8,
    1,
    6,
    1,
    9,
    1
)
*/

NSMutableArrayでも要素はオブジェクトになります。数値はNSNumberクラスのオブジェクトに変換します。「@」と変数を括弧で囲うことで変換できます。

要素の挿入

NSMutableArray *fruits = [NSMutableArray arrayWithArray:@[@"apple",@"orange"]];
[fruits insertObject:@"strawberry" atIndex:1];
NSLog(@"fruits = %@",fruits);
/*
fruits = (
    apple,
    strawberry,
    orange
)
*/

要素の挿入はinsertObjectで行い、atIndexでインデックス番号を決めます。インデックスは0から始まることに注意します。削除はremoveObjectもしくはremoveObjectAtIndexを使います。