質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

date

dateは、date型や日付に関する関数や処理についてのタグです

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1150閲覧

(Swift3) Date型の配列の中身をtableviewcellに昇順で表示させる方法

niship

総合スコア37

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

date

dateは、date型や日付に関する関数や処理についてのタグです

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2017/05/20 23:25

スケジュールアプリを作成しております。
ユーザーが指定したDate型のデータを配列に追加し、
その配列の中身を昇順でセルに表示させたいと思っています。
セルに表示させる際に、昇順にする方法をご教示頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のようにすることでDate型を昇順に並べ替えられます。

swift

1 2let date1 = Date(timeIntervalSinceNow: 10) 3 4let date2 = Date(timeIntervalSinceNow: 11) 5 6let date3 = Date(timeIntervalSinceNow: 12) 7 8let date4 = Date(timeIntervalSinceNow: 13) 9 10let date5 = Date(timeIntervalSinceNow: 14) 11 12let dateArray = [date1, date2, date3, date4, date5] 13 14let sortArray = dateArray.sorted { $0 < $1 } 15 16dump(sortArray)

投稿2017/05/21 00:29

_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

niship

2017/05/21 02:40

_Kentarou 様 ご回答有難うございます。 昇順表示に成功したのですが、セルをDeleteした際にクラッシュしてしまいます。 配列の添え字が原因なのでしょうか? 現在のcellForRowAtとeditingStyleのコードを下記に記します。 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TableViewCell func dateString(date: NSDate) -> String { let dateFormatter = DateFormatter() dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)! as Calendar! dateFormatter.locale = NSLocale.system dateFormatter.timeZone = NSTimeZone.system dateFormatter.dateFormat = "H:mm" let dateString: String = dateFormatter.string(from: date as Date) return dateString } let sortArray = dateArray1.sorted { $0 < $1 } strBox.append(dateString(date: sortArray[a] as NSDate)) cell.titleLabel.text = strBox[a] a += 1 return cell } func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { if editingStyle == .delete { if titleArray[indexPath.row] != nil { titleArray.remove(at: indexPath.row) } if detailArray[indexPath.row] != nil { strBox.remove(at: indexPath.row) } if dateArray1[indexPath.row] != nil { dateArray1.remove(at: indexPath.row) } if dateArray2[indexPath.row] != nil { dateArray2.remove(at: indexPath.row) } if placeArray[indexPath.row] != nil { placeArray.remove(at: indexPath.row) } if urlArray[indexPath.row] != nil { urlArray.remove(at: indexPath.row) } if alarmDateArray[indexPath.row] != nil { alarmDateArray.remove(at: indexPath.row) } ご教示お願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問