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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

Q&A

1回答

1160閲覧

swift 4 現在の日時を読み込みストリングにし、時間にあった情報を表示

退会済みユーザー

退会済みユーザー

総合スコア0

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/04/15 13:49

編集2018/04/16 16:32

前提・実現したいこと

xcodeで現在の時刻に適した情報を表示させるアプリを作ろうとしています。そこで、
日時を取得→その日時をストリングにする→その日時にあった情報を表示させる
というようにしたいです。(細かくは、TableViewを表示させたいです。)

例えば、5月1日9時から10時、10時から11時、11時から12時、、、次に、5月2日9時から10時、10時から11時、11時から12時、、、 (2日間のみ)というように一時間おきに情報を変えるようにしたいです。

この時、日時のデータをどのように置けばいいのか、また、それをストリングにするにはどのようにすれば良いのか教えてください。

よろしくお願いいいたします。

該当のソースコード

ViewController.swift

1 2 3import UIKit 4 5class NotificationViewController: UIViewController,UITableViewDelegate, UITableViewDataSource { 6 7 var date = String() 8 9 @IBOutlet weak var datelabel: UILabel! 10 11 @IBOutlet weak var table: UITableView! 12 13 14 15 let placearray9 : NSArray = [ 16 17 18 ] 19 let placearray10 : NSArray = [ 20 21 22 ] 23 let placearray11 : NSArray = [ 24 25 26 ] 27 let placearray12 : NSArray = [ 28 29 30 ] 31 let placearray13 : NSArray = [ 32 33 34 ] 35 let placearray14 : NSArray = [ 36 37 38 ] 39 let placearray15 : NSArray = [ 40 41 42 ] 43 44 let placearray92 : NSArray = [ 45 46 ] 47 let placearray102 : NSArray = [ 48 49 ] 50 51 let placearray112 : NSArray = [ 52 53 54 ] 55 let placearray122 : NSArray = [ 56 57 58 ] 59 let placearray132 : NSArray = [ 60 61 62 ] 63 let placearray142 : NSArray = [ 64 65 66 ] 67 let placearray152 : NSArray = [ 68 69 ] 70 71 let imgarray9 : NSArray = [ 72 73 74 ] 75 let imgarray10 : NSArray = [ 76 77 78 ] 79 let imgarray11 : NSArray = [ 80 81 82 ] 83 let imgarray12 : NSArray = [ 84 85 86 ] 87 let imgarray13 : NSArray = [ 88 89 90 ] 91 let imgarray14 : NSArray = [ 92 93 94 ] 95 let imgarray15 : NSArray = [ 96 97 98 ] 99 let imgarray92 : NSArray = [ 100 101 102 ] 103 let imgarray102 : NSArray = [ 104 105 ] 106 let imgarray112 : NSArray = [ 107 108 ] 109 let imgarray122 : NSArray = [ 110 111 112 ] 113 let imgarray132 : NSArray = [ 114 115 116 ] 117 let imgarray142 : NSArray = [ 118 119 120 ] 121 let imgarray152 : NSArray = [ 122 123 ] 124 //長くなってしまうので記載しませんが、ほかにもArrayがあります。 125 126 override func viewDidLoad() { 127 super.viewDidLoad() 128 129 // Do any additional setup after loading the view. 130 131 } 132 133 func getNowClockString() -> String { 134 let formatter = DateFormatter() 135 formatter.dateFormat = "yyyy-MM-dd''HH" 136 let now = Date() 137 138 let date = formatter.string(from: now) 139 140     print(date) 141 142 return formatter.string(from: now) 143 144 func changelabel() { 145 146 if date == "2018-05-01''09" { 147 148 datelabel.text = "1日目9時台のイベント" 149 150 }else if date == "2018-05-01''10" { 151 152 datelabel.text = "1日目10時台のイベント" 153 154 }else if date == "2018-05-01''11" { 155 156 datelabel.text = "1日目11時台のイベント" 157 }else if date == "2018-05-01''12" { 158 159 datelabel.text = "1日目12時台のイベント" 160 161 }else if date == "2018-05-01''13" { 162 163 datelabel.text = "1日目13時台のイベント" 164 165 }else if date == "2018-05-01''14" { 166 167 datelabel.text = "1日目14時台のイベント" 168 169 }else if date == "2018-05-01''15" { 170 171 datelabel.text = "1日目15時台のイベント" 172 173 }else if date == "2018-05-02''09" { 174 175 datelabel.text = "2日目9時台のイベント" 176 177 }else if date == "2018-05-02''10" { 178 179 datelabel.text = "2日目10時台のイベント" 180 181 }else if date == "2018-05-02''11" { 182 183 datelabel.text = "2日目11時台のイベント" 184 185 }else if date == "2018-05-02''12" { 186 187 datelabel.text = "2日目12時台のイベント" 188 189 }else if date == "2018-05-02''13" { 190 191 datelabel.text = "2日目13時台のイベント" 192 193 }else if date == "2018-05-02''14" { 194 195 datelabel.text = "2日目14時台のイベント" 196 197 }else if date == "2018-05-02''15" { 198 199 datelabel.text = "2日目15時台のイベント" 200 201 }else { 202 203 datelabel.text = "1日目9時台のイベント" 204 205 } 206 207 } 208 209 } 210 func tableView(_ table: UITableView, 211 numberOfRowsInSection section: Int) -> Int { 212 213 if date == "2018-05-01''09" { 214 return placearray9.count 215 }else if date == "2018-05-01''10" { 216 return placearray10.count 217 }else if date == "2018-05-01''11" { 218 return placearray11.count 219 }else if date == "2018-05-01''12" { 220 return placearray12.count 221 }else if date == "2018-05-01''13" { 222 return placearray13.count 223 }else if date == "2018-05-01''14" { 224 return placearray14.count 225 }else if date == "2018-05-01''15" { 226 return placearray15.count 227 }else if date == "2018-05-02''09" { 228 return placearray92.count 229 }else if date == "2018-05-02''10" { 230 return placearray102.count 231 }else if date == "2018-05-02''11" { 232 return placearray112.count 233 }else if date == "2018-05-02''12" { 234 return placearray122.count 235 }else if date == "2018-05-02''13" { 236 return placearray132.count 237 }else if date == "2018-05-02''14" { 238 return placearray142.count 239 }else if date == "2018-05-02''15" { 240 return placearray152.count 241 }else { 242 return placearray9.count 243 244 } 245 246 } 247 } 248 func tableView(_ table: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 249 250 if date == "2018-05-01''09" { 251 //画像やラベルに関する記載 252       let img = UIImage(named: imgarray9[indexPath.row] as! String) 253 254 let imageView = cell.viewWithTag(3) as! UIImageView 255 imageView.image = img 256 257 let label1 = cell.viewWithTag(2) as! UILabel 258 label1.text = String(describing: placearray9[indexPath.row]) 259 label1.adjustsFontSizeToFitWidth = true 260 261 let label2 = cell.viewWithTag(4) as! UILabel 262 label2.text = String(describing: titlearray9[indexPath.row]) 263 label2.adjustsFontSizeToFitWidth = true 264 265 let label3 = cell.viewWithTag(5) as! UILabel 266 label3.text = String(describing: timearray9[indexPath.row]) 267 label3.adjustsFontSizeToFitWidth = true 268 269 }else if date == "2018-05-01''10" { 270 271 }else if date == "2018-05-01''11" { 272 273 }else if date == "2018-05-01''12" { 274 275 }else if date == "2018-05-01''13" { 276 277 }else if date == "2018-05-01''14" { 278 279 }else if date == "2018-05-01''15" { 280 281 }else if date == "2018-05-02''09" { 282 283 }else if date == "2018-05-02''10" { 284 285 }else if date == "2018-05-02''11" { 286 287 }else if date == "2018-05-02''12" { 288 289 }else if date == "2018-05-02''13" { 290 291 }else if date == "2018-05-02''14" { 292 293 }else if date == "2018-05-02''15" { 294 295 }else { 296 297 298 } 299 return cell 300} 301 302func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 303 return 120.0 304 } 305 306 override func didReceiveMemoryWarning() { 307 super.didReceiveMemoryWarning() 308 // Dispose of any resources that can be recreated. 309 } 310 311 312} 313 314

エラー

let date = formatter.string(from: now)で、
Initialization of immutable value 'date' was never used; consider replacing with assignment to '_' or removing itとエラーが出ます。

→ fuzzballさんより回答をいただき、訂正。print(date)を追加して解決。

しかし、もちろんArrayの中には情報がありますが、labelとtimetableとともに何も表示されません。

バージョン

Swift4,xcode9,iOS11

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

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

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

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

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

newmt

2018/04/16 22:00

まずcellForRowAtなどのメソッドが呼ばれ、配列から値が取得されていることは確認できていますでしょうか?
退会済みユーザー

退会済みユーザー

2018/04/17 15:13

datasourceとdeligateはViewControllerと繋がっています。しかし、日時を取得することができていないと思われます。
newmt

2018/04/17 21:33

cellForRowAtの先頭でprint(date)をすると何が出力されますでしょうか?
guest

回答1

0

そのwarningは、定義した変数を使用していないために出ているだけです。
例えば、その下にprint(date)と書くとか、return dateとすればwarningは消えます。

本当に戻り値を使用しない場合は、下記のように書いて戻り値を使用しないことを明示できます。

swift

1_ = formatter.string(from: now)

‥と、エラーメッセージに書いています。

投稿2018/04/16 00:30

fuzzball

総合スコア16731

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

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

退会済みユーザー

退会済みユーザー

2018/04/16 16:35

回答ありがとうございます。print(date)を追加しました。 その上で、質問内容を編集、より詳しくした上で、もう一度質問させていただきます。よろしければ、回答よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問