
[code]

    #define MV_GRID_LENGTH 1
    #define MV_GRID_WIDTH 2
    
    @interface ViewController (){
        UIImageView *imageView[ MV_GRID_LENGTH * MV_GRID_WIDTH ];
    }
    
    - (void)viewDidLoad {
        int cnt = 0;
    
        for(int i=0; i<MV_GRID_LENGTH; i++){
            for(int j=0; i<MV_GRID_WIDTH;j++){
                imageView[cnt] = [UIImageView new];
                //処理中略
    
                [self.view addSubview:imageView[cnt]];
                cnt++;
            }
        }
    }
    
[/code]

上記のようにimageViewを同時に複数生成するような処理において、imageViewの配列要素数が可変長になる場合、c言語では「UIImageView
*imageView[];」のように表現すればよかったかと思いますが、objctive-
cではどのように表現するのがよりよいのでしょうか。初歩的な質問で恐縮ですがよろしくお願いいたします。


CC BY-SA 4.0
2018-07-10T09:08:54.320
45480
2018-07-10T09:30:50.357
28641
question
xcode objective-c
objective-cでの可変長配列について


NSMutableArrayというオブジェクトを追加、削除できるクラスが標準で備わっています。  
コードの動作は確認していませんが、  
以下のような感じになります。

[code]

    NSMutableArray<UIImageView*> *imageViewArray = [NSMutableArray<UIImageView*> array];
    
    for(int i=0; i<MV_GRID_LENGTH; i++)
    {
        for(int j=0; i<MV_GRID_WIDTH;j++)
        {
            [imageViewArray addObject:[UIImageView new]];
            //処理中略
    
            [self.view addSubview:[imageViewArray objectAtIndex:cnt];
            cnt++;
        }
    }
    
[/code]


CC BY-SA 4.0
2018-07-10T09:30:50.357
45482
2018-07-10T09:30:50.357
17014
45480
answer