m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

XcodeというかObjective-Cの勉強(超基礎編:動的配列とか文字列の比較とか)

配列

動的配列の方法はどうなっている?

//
//  main.m
//  sample1
//
//  Created by xxxx on 2014/05/14.
//  Copyright (c) 2014年 xxxx. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        // insert code here...
        NSLog(@"Hello, World!");
        
        // 文字列の比較
        NSString *aaa = @"aaa";
        if([aaa isEqualToString: @"aaa"]){
            NSLog(@"aaa一致");
        }
        if([aaa isEqualToString: @"bbb"]){
            NSLog(@"aaa一致");
        }else{
            NSLog(@"aaa不一致");
        }
        
        // Boolean
        Boolean vv;
        vv = true;
        
        if(vv == true){
            NSLog(@"vv match");
        }else{
            NSLog(@"vv no match");
        }
        
        if(vv == false){
            NSLog(@"vv match");
        }else{
            NSLog(@"vv no match");
        }
        
        // 配列を定義して、一気に3つ設定する
        NSArray *list;
        list = [NSArray arrayWithObjects:@"aaa", @"bbb", @"ccc", nil];
        
        // for eachにて繰り返し
        for(NSObject *obj in list){
            NSLog(@"%@", obj);
        }
        
        // 動的に配列に項目を追加
        NSMutableArray *list2 = [NSMutableArray array];
        [list2 addObject:@"xxx1"];
        [list2 addObject:@"xxx2"];
        [list2 addObject:@"xxx3"];
        [list2 addObject:@"xxx4"];
        [list2 removeObjectAtIndex:2];
        
        // for eachにて繰り返し
        for(NSObject *obj in list2){
            NSLog(@"%@", obj);
        }
        
    }
    return 0;
}
結果
2014-05-14 21:43:04.713 sample1[9781:303] Hello, World!
2014-05-14 21:43:04.715 sample1[9781:303] aaa一致
2014-05-14 21:43:04.716 sample1[9781:303] aaa不一致
2014-05-14 21:43:04.716 sample1[9781:303] vv match
2014-05-14 21:43:04.716 sample1[9781:303] vv no match
2014-05-14 21:43:04.717 sample1[9781:303] aaa
2014-05-14 21:43:04.717 sample1[9781:303] bbb
2014-05-14 21:43:04.717 sample1[9781:303] ccc
2014-05-14 21:43:04.718 sample1[9781:303] xxx1
2014-05-14 21:43:04.718 sample1[9781:303] xxx2
2014-05-14 21:43:04.718 sample1[9781:303] xxx4
Program ended with exit code: 0

まとめ

配列もデータ型でいくつかあるようでNSArrayでは動的な追加はうまく行かなかった。
しかし、配列などの件数が不明確な場合はfor-eachでこの方法はjavascriotと同じみたいな感じ
普段、*は使ってなかったのでちょっとなれるのに大変かも…