Objective C - Create a multi-dimensional array with the dimensions specified at initialisation

前端 未结 3 797
北恋
北恋 2020-12-19 15:57

I am trying to create a class where the width and height of a 2 dimensional array can be dynamically created at the point of initialisation with init parameters.

I h

3条回答
  •  执念已碎
    2020-12-19 16:20

    Here is another pure Objective C Version

    #import foundation.h
    
    @interface ZTwoDimensionalArray : NSObject{
    
        @package 
        NSMutableArray* _array;
        int _rows, _columns;
    }
    
    -(id) initWIthRows:(int)numberOfRows andColumns:(int) numberOfColumns;
    
    -(id) getObjectAtRow:(int) row andColumn:(int)column;
    
    -(void) setObject:(id) anObject atRow:(int) row andColumn:(int)column;
    @end
    
    
    
    #import "ZTwoDimensionalArray.h"
    
    @implementation ZTwoDimensionalArray
    
    -(id) initWIthRows:(int)numberOfRows andColumns:(int) numberOfColumns{
    
        if (self = [super init]) {
            _array = [NSMutableArray initWithCapacity:numberOfRows*numberOfColumns];
            _rows = numberOfRows;
            _columns = numberOfColumns;
        }
        return self;
    }
    
    -(id) getObjectAtRow:(int) row andColumn:(int)column{
    
        return [_array objectAtIndex: row*_rows + column];
    }
    
    -(void) setObject:(id) anObject atRow:(int) row andColumn:(int)column{
    
        [_array insertObject:anObject atIndex:row*_rows + column];
    }
    
    -(void) dealloc{
    
        [_array release];
    }
    @end
    

提交回复
热议问题