Маршрут форматирования все очень хорошо, но почему вы хотите хранить даты в виде строк в массиве?
Даты действительно должны храниться как NSDate
с, вплоть до того момента, когда они должны отображаться, а затем вы можете запустить их через средство форматирования. NSDate
является объектом, и его можно довольно легко сохранить в NSArray.
А если серьезно, спросите себя, зачем вам 20 дней? Что вы собираетесь с ними делать? Есть и другие способы сделать это. Если вам нужно 20 дней для отображения в UITableView, просто сохраните NSDate
s и используйте форматировщик для преобразования даты в строки при создании ячеек.
Если вы хотите иметь возможность ссылаться на дату x дней в будущем на основе даты начала, не генерируйте их все сразу, сохраните дату начала, вычислите смещение, которое вы хотите, а затем сгенерируйте новую дату на лету и отформатируйте его перед отображением. На самом деле, этот метод будет работать и для таблиц, вы можете лениво создавать даты и кэшировать их во время работы приложения. Немного больше работы, но гораздо более масштабируемо, чем статический NSArray из NSStrings.
Кажется, что возникает несколько таких вопросов, когда кто-то задает вопрос и получает цепочку ответов, которые на самом деле верны, но на самом деле не пытаются решить суть вопроса.
Да - генерировать даты, превращать их в строки с помощью NSDateFormatter и сохранять их в массиве.
Или подумайте, зачем вам нужны 20 последовательных дат, и как вы собираетесь их использовать, и используйте более подходящий процесс хранения / отображения.