Я пытаюсь создать свой собственный класс для управления матрицами, но я новичок в Objective-C.
Матричный класс
Я создаю этот класс для управления матрицами, сохраняя его в NSMutableArray
из NSMutableArray
.
@interface matrix : NSObject
{
NSMutableArray *grid;
// Dimensiones de la matriz.
NSUInteger num_columns;
NSUInteger num_rows;
}
Я создал метод для добавления строк, столбцов и других операций. Метод addRow выглядит так:
-(BOOL) addRow:(NSArray *) fila
{
NSLog(@"Dentro de Añadir una Fila de una matriz.");
[grid addObject:fila];
[self checkDimensions];
return YES;
}
Я использую метод класса extern
. Этот метод очень прост, потому что я хочу создать матрицу и распечатать ее.
-(BOOL) matrixTEST
{
NSLog(@"Dentro de Testeo de una matriz.");
// create a new instance
matrix *m = [[matrix alloc] init];
NSMutableArray *vector = [[NSMutableArray alloc] init];
[vector addObject:@"1"];
[vector addObject:@"2"];
[vector addObject:@"3"];
[m addRow:vector];
[vector removeAllObjects];
[vector addObject:@"4"];
[vector addObject:@"5"];
[vector addObject:@"6"];
[m addRow:vector];
[vector removeAllObjects];
[vector addObject:@"7"];
[vector addObject:@"8"];
[vector addObject:@"3"];
[m addRow:vector];
[vector removeAllObjects];;
// print matriz
[m imprimirMatriz];
[vector release];
return YES;
}
Проблема в том, что я не знаю, что я делаю неправильно, потому что метод printMatrix показывает ошибку неверного доступа или нулей. Кроме того, переменные, определенные как содержащие количество строк и столбцов, показывают странные значения: - Rows : 5.75753e+228 - Columns : 8.55507e-53
Способ печати Матрицы.
-(void) imprimirMatriz
{
NSMutableArray *temp = [[NSMutableArray alloc] init];
// NSNumber *numero = [[NSNumber alloc] init];
NSLog(@"Dentro de imprimir matriz.");
[self printDimensions];
for(NSUInteger c = 0; c < num_rows; c++)
{
temp = [grid objectAtIndex:c];
for(NSUInteger d = 0; d < num_columns; d++)
{
NSLog(@" %3g ", [temp objectAtIndex:d]);
}
NSLog(@"\n");
}
[temp release];
}