Я хочу создать калькулятор преобразователя механических единиц в iphone sdk, поэтому мне нужно выполнить один или несколько типов операций. Например, длина - это категория, и в категории длины есть несколько типов единиц, например, метр, километр и т. д. Теперь для каждой единицы мне придется создать несколько комбинаций для этого, я использую условия if-else на данный момент, чтобы работать, но на практике это сильно увеличивает мой код, потому что существует почти 30 категорий, и каждая категория имеет несколько единиц. Так что есть какой-либо другой способ решить эту проблему вкратце, поскольку слишком беспокойно писать так много комбинаций if else в моем коде. Для этого я подумал, что можно использовать двумерный массив. Поэтому, пожалуйста, предоставьте мне код для двумерного массива для выполнения этой операции вычисления.
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];
Как предложил Джулс, вы можете использовать NSMutableArray для создания своего двумерного массива. Другой подход - иметь mXn
количество объектов в одном NSMUtableArray. Создайте массив и последовательно добавляйте объекты. Доступ к элементу [i][j]
осуществляется путем доступа к объекту в (i*n)+j
.
Похожие вопросы
Новые вопросы
iphone
НЕ ИСПОЛЬЗУЙТЕ этот тег, если вы не обращаетесь конкретно к iPhone и / или iPod touch от Apple. Для вопросов, не зависящих от оборудования, используйте тег [ios]. Больше тегов, которые нужно рассмотреть, это [xcode] (но только если вопрос касается самой IDE), [swift], [target-c] или [cocoa-touch] (но не [cocoa]). Пожалуйста, воздержитесь от вопросов, касающихся iTunes App Store или iTunes Connect. Если вы используете C #, пометьте [mono].