iOS: массив, содержащий два других массива

#objective-c #xcode #ios #nsarray

#objective-c #xcode #iOS #nsarray

Вопрос:

В моем проекте я должен хранить значение за определенный период; Пример: у меня есть три кнопки, где я могу выбрать значение: у меня есть кнопка для «10», другая для «100» и еще одна для «1000». Когда я нажимаю кнопку, я открываю представление, где я могу выбрать период для этих значений: затем, например, я нажимаю «100», и я выбираю период с 15/05/2011 по 20/05/2011 и нажимаю ok. Результатом является то, что в месяце «Май» в 15-й день имеет значение 100, в 16-й день имеет значение 100 ….. и в 20-й день имеет значение 100. Могу ли я организовать этот метод с массивом месяца, где в индексе есть другой массив дней, а внутри каждого дня есть значение 100? Но я не знаю, как это сделать…Можете ли вы мне помочь?

Ответ №1:

Из того, что я понял из вашего вопроса… по сути, вам нужен массив месяцев, и внутри каждого месяца у вас есть массив дней, и для каждого дня у вас есть массив значений? или просто значение?

В любом случае, то, что вы можете сделать, это просто вложенные массивы. Итак, у вас есть один NSArray, и все объекты внутри этого NSArray также являются NSArrays и так далее, и тому подобное, пока вы не получите желаемую структуру.

Если бы вы могли предоставить более четкое объяснение того, чего именно вы хотите достичь, тогда я мог бы уточнить свой ответ, но я думаю, что это могло бы направить вас на правильный путь?

 NSMutableArray *months = [[NSMutableArray alloc] init];
for (int i = 0; i < 12; i  ) {
  NSMutableArray *days = [[NSMutableArray alloc] init];

  for (int j = 0; j < 30; j  ) {
    NSMutableArray *values = [NSMutableArray alloc] init];
    [days addObject:values];
    [values release];
  }
  [months addObject:days];
  [days release];
}
  

У меня нет моего Mac, поэтому простите меня за любые ошибки, но я думаю, вы хотите что-то вроде этого?

Итак, в массиве «месяцы» имеется 12 массивов «дни», и для каждого массива «дни» имеется 30 массивов «значения», куда вы можете добавить свои значения.

ПРИМЕЧАНИЕ: Вам нужно будет ввести свою логику для проверки фактического количества дней в каждом месяце, поскольку этот код будет просто предполагать, что в каждом месяце есть 30 дней.

Комментарии:

1. да, мне нужен массив месяцев, и в пределах каждого месяца у вас есть массив дней, и для каждого дня у вас есть массив значений, потому что в каждый день я могу хранить некоторые значения, а не только одно. Можете ли вы предложить мне пример, как я могу упорядочить свой код?

2. Я изменил свой ответ, чтобы показать некоторый пример кода, который предоставит вам массив, который должен достичь того, что вы хотите сделать, я полагаю

3. да, это верно, это на один год. Если вы хотите использовать его в течение нескольких лет, вам придется создать другой массив и добавить в него массив месяцев.