Я хочу создать калькулятор преобразователя механических единиц в iphone sdk, поэтому мне нужно выполнить один или несколько типов операций. Например, длина - это категория, и в категории длины есть несколько типов единиц, например, метр, километр и т. д. Теперь для каждой единицы мне придется создать несколько комбинаций для этого, я использую условия if-else на данный момент, чтобы работать, но на практике это сильно увеличивает мой код, потому что существует почти 30 категорий, и каждая категория имеет несколько единиц. Так что есть какой-либо другой способ решить эту проблему вкратце, поскольку слишком беспокойно писать так много комбинаций if else в моем коде. Для этого я подумал, что можно использовать двумерный массив. Поэтому, пожалуйста, предоставьте мне код для двумерного массива для выполнения этой операции вычисления.

0
Priyanka 26 Авг 2011 в 11:14

2 ответа

Лучший ответ

Просто поместите объекты NSArray в NSArray, и у вас будет двухмерный массив. (почти как на любом другом языке.)

NSMutableArray * myTwoDimensionalArray = [NSMutableArray alloc]init];
[myTwoDimensionalArray addObject:[NSArray arrayWithObjects:@"value 0/0", @"value 0/1",nil]];    
[myTwoDimensionalArray addObject:[NSArray arrayWithObjects:@"value 1/0", @"value 1/1",nil]];

// to get value at [i][j]
[[myTwoDimensionalArray objectAtIndex:i] objectAtIndex:j];
1
jules 26 Авг 2011 в 07:29

Как предложил Джулс, вы можете использовать NSMutableArray для создания своего двумерного массива. Другой подход - иметь mXn количество объектов в одном NSMUtableArray. Создайте массив и последовательно добавляйте объекты. Доступ к элементу [i][j] осуществляется путем доступа к объекту в (i*n)+j.

1
Praveen S 26 Авг 2011 в 07:44