質問編集履歴

5

画像差し替え

2017/12/05 04:55

投稿

45tigris
45tigris

スコア14

test CHANGED
File without changes
test CHANGED
@@ -476,6 +476,6 @@
476
476
 
477
477
  ![2](b5f713519bfae7c564b46fb8f18ca839.png)
478
478
 
479
- ![3](c3eccc4475c487ea202f0720b42f899f.png)
479
+ ![3](865cbf5395d19041f51280c07e71cf5f.png)
480
480
 
481
481
  ![4](3f76d6229f819c2b92fcd5688030f80e.png)

4

CNContactPickerViewControllerのチェックを消したいです。

2017/12/05 04:54

投稿

45tigris
45tigris

スコア14

test CHANGED
@@ -1 +1 @@
1
- 連絡先一覧から情報を取得しアラートで表示したいです。PickerViewのチェックが消えません
1
+ 連絡先CNContactPickerViewControllerのチェックが消えません(初期化したいです)。
test CHANGED
@@ -8,14 +8,18 @@
8
8
 
9
9
   アラートが開き、選択した人が表示されます。
10
10
 
11
- ③そこから**さらに人をタップすると、その人の名前、携帯番号、メールアドレスを表示したいで**
11
+ ③そこからさらに人をタップすると、その人の名前、携帯番号、メールアドレスを表示す
12
+
13
+ ④人を選んで情報を取得アラートを表示。
14
+
15
+ ⑤4のアラートの「OK」を押すとViewControllerに戻る。
16
+
17
+ **⑥再度、ViewControllerの「取得」ボタンを押してiPhoneの連絡先一覧を開くと
18
+
19
+ チェックが外れていません。**
12
20
 
13
21
  ******************************************************************
14
22
 
15
- ③までは、なんとかできたのですが、アラートの「OK」を押して**ViewControllerに戻って再度「取得」ボタンを押して連絡先一覧を開くと
16
-
17
- チェックが消えていません。**リフレッシュできるのでしょうか?
18
-
19
23
  ```ここに言語を入力
20
24
 
21
25
  // ViewController.swift
@@ -248,9 +252,13 @@
248
252
 
249
253
  preferredStyle:.alert)
250
254
 
251
- kekkaAlert.addAction(UIAlertAction(title: "OK", style: .default))
255
+ ** kekkaAlert.addAction(UIAlertAction(title: "OK", style: .default))
256
+
252
-
257
+ **
258
+
259
+ **//このOKを押したらCNContactPickerVeiwのチェックを全て外したい。
260
+
253
- self.present(kekkaAlert, animated: true, completion: nil)
261
+ **self.present(kekkaAlert, animated: true, completion: nil)
254
262
 
255
263
  print("target name = (self.target[i].name)")
256
264
 

3

こーどを変更しました。

2017/12/04 06:56

投稿

45tigris
45tigris

スコア14

test CHANGED
@@ -1 +1 @@
1
- 連絡先一覧から情報を取得しアラートで表示したいです。
1
+ 連絡先一覧から情報を取得しアラートで表示したいです。PickerViewのチェックが消えません
test CHANGED
@@ -12,11 +12,9 @@
12
12
 
13
13
  ******************************************************************
14
14
 
15
- ③までは、なんとかできたのですが、**携帯番号、メールアドレスの表示がおかしいです。**
16
-
17
- また**ViewControllerに戻って再度「取得」ボタンを押して連絡先一覧を開くと
15
+ では、なんとかできのですが、アラートの「OK」を押して**ViewControllerに戻って再度「取得」ボタンを押して連絡先一覧を開くと
18
-
16
+
19
- チェックが消えていません。**
17
+ チェックが消えていません。**リフレッシュできるのでしょうか?
20
18
 
21
19
  ```ここに言語を入力
22
20
 
@@ -50,7 +48,7 @@
50
48
 
51
49
  @IBOutlet weak var givenNameField: UITextField!
52
50
 
53
- var target: [(name:String,email:[CNLabeledValue<NSString>],phNo:[CNLabeledValue<CNPhoneNumber>])] = []
51
+ **var target: [(name:String,email:String,phNo:String)] = []**
54
52
 
55
53
  var nameList:[String] = []
56
54
 
@@ -306,9 +304,9 @@
306
304
 
307
305
  let names = contact.givenName + " " + contact.familyName
308
306
 
309
- let emails = contact.emailAddresses
307
+ let emails = (contact.emailAddresses[0].value as! String)
310
-
308
+
311
- let phoneNo = contact.phoneNumbers
309
+ let phoneNo = (contact.phoneNumbers[0].value as! CNPhoneNumber).value(forKey: "digits") as! String
312
310
 
313
311
 
314
312
 

2

コードを変更しました。

2017/12/01 07:33

投稿

45tigris
45tigris

スコア14

test CHANGED
@@ -1 +1 @@
1
- 連絡先一覧につて教えてください
1
+ 連絡先一覧から情報を取得しアラートで表示したです
test CHANGED
@@ -12,22 +12,32 @@
12
12
 
13
13
  ******************************************************************
14
14
 
15
- までは、なんとかできたのですがりません
15
+ までは、なんとかできたのですが、**携帯番号、メールアドレス表示しいです**
16
16
 
17
17
  また**ViewControllerに戻って再度「取得」ボタンを押して連絡先一覧を開くと
18
18
 
19
19
  チェックが消えていません。**
20
20
 
21
- [CNLabeledValue<NSString>]のメールアドレスをStringに変換することはできないのでしょうか?
22
-
23
21
  ```ここに言語を入力
24
22
 
23
+ // ViewController.swift
24
+
25
+ // ToAdressBook
26
+
27
+ // Created by admin on 2017/11/13.
28
+
29
+ // Copyright © 2017年 css. All rights reserved.
30
+
31
+
32
+
25
33
  import UIKit
26
34
 
27
35
  import Contacts
28
36
 
29
37
  import ContactsUI
30
38
 
39
+
40
+
31
41
  class ViewController: UIViewController, CNContactPickerDelegate, CNContactViewControllerDelegate {
32
42
 
33
43
 
@@ -40,13 +50,153 @@
40
50
 
41
51
  @IBOutlet weak var givenNameField: UITextField!
42
52
 
43
- var target: [(name:String,email:[CNLabeledValue<NSString>],phNo:CNLabeledValue<CNPhoneNumber>)] = []
53
+ var target: [(name:String,email:[CNLabeledValue<NSString>],phNo:[CNLabeledValue<CNPhoneNumber>])] = []
44
54
 
45
55
  var nameList:[String] = []
46
56
 
47
57
  let cnPicker = CNContactPickerViewController()
48
58
 
49
-
59
+ //未入力時アラート
60
+
61
+ func minyuryokuAlert() {
62
+
63
+ let alert = UIAlertController(
64
+
65
+ title: "未入力の欄があります",
66
+
67
+ message: "",
68
+
69
+ preferredStyle: .alert)
70
+
71
+ alert.addAction(UIAlertAction(title:"OK", style: .default))
72
+
73
+ self.present(alert, animated: true, completion: nil)
74
+
75
+ }
76
+
77
+
78
+
79
+ //「登録」ボタン押下
80
+
81
+ @IBAction func registerBTPush(_ sender: Any) {
82
+
83
+ //連絡先に追加する可変オブジェクト作成
84
+
85
+ let newcontact = CNMutableContact()
86
+
87
+ //newcontact.imageData = NSData() as Data //NSDataオブジェクトとしてのプロフィール画像
88
+
89
+ //キーボードを下げる
90
+
91
+ view.endEditing(true)
92
+
93
+ if nameField.text == "" {
94
+
95
+ self.minyuryokuAlert()
96
+
97
+ }
98
+
99
+ if givenNameField.text == "" {
100
+
101
+ self.minyuryokuAlert()
102
+
103
+ }
104
+
105
+ if phoneNumberField.text == "" {
106
+
107
+ self.minyuryokuAlert()
108
+
109
+ }
110
+
111
+ if emailAddressField.text == "" {
112
+
113
+ self.minyuryokuAlert()
114
+
115
+ }
116
+
117
+ //入力欄が空欄だったらエラーを表示。全て入力されていたら保存
118
+
119
+ if nameField.text != "" && givenNameField.text != "" && phoneNumberField.text != "" && emailAddressField.text != "" {
120
+
121
+ //名前
122
+
123
+ let myname = nameField.text!
124
+
125
+ newcontact.givenName = myname
126
+
127
+ //苗字
128
+
129
+ let myFamilyName = givenNameField.text!
130
+
131
+ newcontact.familyName = myFamilyName
132
+
133
+ //メアド
134
+
135
+ let myemail = emailAddressField.text! as NSString
136
+
137
+ let myEmail = CNLabeledValue(label:CNLabelHome, value:NSString(string: myemail))
138
+
139
+ newcontact.emailAddresses = [myEmail]
140
+
141
+ //番号
142
+
143
+ let myphoneNo = phoneNumberField.text!
144
+
145
+ newcontact.phoneNumbers = [CNLabeledValue(
146
+
147
+ label:CNLabelPhoneNumberiPhone,
148
+
149
+ value:CNPhoneNumber(stringValue: myphoneNo))]
150
+
151
+
152
+
153
+ print("お名前:(newcontact.givenName)")
154
+
155
+ print("苗字:(newcontact.familyName)")
156
+
157
+ print("メアド:(newcontact.emailAddresses)")
158
+
159
+ print("番号:(newcontact.phoneNumbers)")
160
+
161
+
162
+
163
+ //新しく作成した連絡先を保存
164
+
165
+ let saveRequest = CNSaveRequest()
166
+
167
+ saveRequest.add(newcontact, toContainerWithIdentifier: nil)
168
+
169
+ do{
170
+
171
+ //try store.execute(saveRequest)
172
+
173
+ try CNContactStore().execute(saveRequest)
174
+
175
+ print("保存したよ")
176
+
177
+ } catch {
178
+
179
+ print("保存失敗")
180
+
181
+ print(error)
182
+
183
+ }
184
+
185
+ } else {
186
+
187
+ self.minyuryokuAlert()
188
+
189
+ }
190
+
191
+ //初回時に連絡先へのアクセスを許可するかのメッセージを表示する
192
+
193
+ let picker = CNContactPickerViewController()
194
+
195
+ picker.delegate = self
196
+
197
+ self.present(picker, animated: true, completion: nil)
198
+
199
+ }
50
200
 
51
201
  func contactPickerDidCancel(_ picker: CNContactPickerViewController) {
52
202
 
@@ -76,7 +226,7 @@
76
226
 
77
227
  preferredStyle: .alert)
78
228
 
79
- //アラートにアクション追加
229
+ //アラートにアクション追加(アクション名は選択した人達)
80
230
 
81
231
  for i in 0..<mycount {
82
232
 
@@ -90,17 +240,25 @@
90
240
 
91
241
  handler: {(action) -> Void in
92
242
 
93
- print("(self.nameList[i])")
94
-
95
- //各人の情報をタプルから取
243
+ //各アクション(各人の情報をタプル配列から取りアラートで表示)
244
+
96
-
245
+ let kekkaAlert = UIAlertController(
246
+
97
-
247
+ title: self.target[i].name,
248
+
98
-
249
+ message: "(self.target[i].email)" + "\n" + "(self.target[i].phNo)",
250
+
99
-
251
+ preferredStyle:.alert)
252
+
100
-
253
+ kekkaAlert.addAction(UIAlertAction(title: "OK", style: .default))
254
+
101
-
255
+ self.present(kekkaAlert, animated: true, completion: nil)
256
+
102
-
257
+ print("target name = (self.target[i].name)")
258
+
103
-
259
+ print("target email = (self.target[i].email)")
260
+
261
+ print("target phoneNumber = (self.target[i].phNo)")
104
262
 
105
263
  })
106
264
 
@@ -142,31 +300,31 @@
142
300
 
143
301
  //「Done」ボタン押下で選択
144
302
 
145
- private func contactPicker(_ picker: CNContactPickerViewController, didSelectContactProperty contacts: CNContactProperty){
303
+ func contactPicker(_ picker: CNContactPickerViewController, didSelect contacts: [CNContact]){
146
-
147
-   //ここで選んだ複数人の情報をタプルで収納したいです。現在エラーになってしまう。
148
304
 
149
305
  contacts.forEach { contact in
150
306
 
151
- let names = contact.givenName + " " + contact.familyName
307
+ let names = contact.givenName + " " + contact.familyName
152
-
308
+
153
- let emails = CNContactProperty.value?.description
309
+ let emails = contact.emailAddresses
154
-
310
+
155
- let phoneNo = contact.phoneNumbers
311
+ let phoneNo = contact.phoneNumbers
156
-
157
-
158
-
312
+
313
+
314
+
159
- print("name is = (names)")
315
+ print("name is = (names)")
160
-
316
+
161
- print("email is = (emails)")
317
+ print("email is = (emails)")
162
-
318
+
163
- print("phoneNo is = (phoneNo)")
319
+ print("phoneNo is = (phoneNo)")
164
-
320
+
165
- nameList.append(names)
321
+ nameList.append(names)
166
-
322
+
167
- //タプルの配列"target"に入れる
323
+ //タプルの配列"target"に入れる
168
-
324
+
169
- target.append((name:names,email:emails,phNo:phoneNo))
325
+ target.append((name:names,email:emails,phNo:phoneNo))
326
+
327
+ print("(target)")
170
328
 
171
329
  }
172
330
 
@@ -176,65 +334,73 @@
176
334
 
177
335
  displayNameList(mycount:count)
178
336
 
337
+ }
338
+
339
+ //「一覧」ボタンを押下。連絡先を取得
340
+
341
+ @IBAction func getMyContact(_ sender: Any) {
342
+
343
+ nameList = []
344
+
345
+ //連絡先を選択するためにCNContactPickerViewControllerを表示する
346
+
347
+ //これを実行すると初回時に「アプリが連絡先へのアクセスを求めています」というダイアログが表示され、
348
+
349
+ //連絡先へのアクセス許可が求められる。許可するとiPhoneに登録されている連絡先リストが表示される。
350
+
351
+ //let cnPicker = CNContactPickerViewController()
352
+
353
+ cnPicker.delegate = self
354
+
355
+ self.present(cnPicker, animated: true, completion: nil)
356
+
179
357
 
180
358
 
181
359
  }
182
360
 
183
- //func contactPicker(_ picker: CNContactPickerViewController, didSelect contacts: [CNContact]){
361
+
184
-
185
- // contacts.forEach { contact in
362
+
186
-
187
- // let names = contact.givenName + " " + contact.familyName
188
-
189
- // let emails = CNContactProperty.value?.description
190
-
191
- // let phoneNo = contact.phoneNumbers
192
-
193
- //
194
-
195
- // print("name is = (names)")
196
-
197
- // print("email is = (emails)")
198
-
199
- // print("phoneNo is = (phoneNo)")
200
-
201
- // nameList.append(names)
202
-
203
- // //タプルの配列"target"に入れる
204
-
205
- // target.append((name:names,email:emails,phNo:phoneNo))
206
-
207
- // }
363
+ //名前入力欄を消去
208
-
209
- // let count = nameList.count
364
+
210
-
211
- // print("nameList = (nameList)")
212
-
213
- // displayNameList(mycount:count)
365
+ @IBAction func NameFieldDelete(_ sender: Any) {
214
-
215
- //}
366
+
216
-
217
- //「一覧」ボタンを押下。連絡先を取得
367
+ nameField.text = ""
368
+
218
-
369
+ }
370
+
371
+
372
+
219
- @IBAction func getMyContact(_ sender: Any) {
373
+ @IBAction func givenNameDelete(_ sender: Any) {
220
-
221
- nameList = []
374
+
222
-
223
- //連絡先を選択するためにCNContactPickerViewControllerを表示する
224
-
225
- //これを実行すると初回時に「アプリが連絡先へのアクセスを求めています」というダイアログが表示され、
226
-
227
- //連絡先へのアクセス許可が求められる。許可するとiPhoneに登録されている連絡先リストが表示される。
228
-
229
- //let cnPicker = CNContactPickerViewController()
230
-
231
- cnPicker.delegate = self
375
+ givenNameField.text = ""
376
+
232
-
377
+ }
378
+
379
+ //電話番号入力欄を消去
380
+
233
- self.present(cnPicker, animated: true, completion: nil)
381
+ @IBAction func phoneNumFieldDelete(_ sender: Any) {
234
382
 
235
383
 
236
384
 
385
+ phoneNumberField.text = ""
386
+
237
- }
387
+ }
388
+
389
+ func addAddressSave(){
390
+
391
+
392
+
393
+ }
394
+
395
+ //emailアドレス入力欄を消去
396
+
397
+ @IBAction func emailFieldDelete(_ sender: Any) {
398
+
399
+ emailAddressField.text = ""
400
+
401
+ }
402
+
403
+
238
404
 
239
405
  override func viewDidLoad() {
240
406
 
@@ -244,6 +410,8 @@
244
410
 
245
411
  }
246
412
 
413
+
414
+
247
415
  override func didReceiveMemoryWarning() {
248
416
 
249
417
  super.didReceiveMemoryWarning()
@@ -252,7 +420,41 @@
252
420
 
253
421
  }
254
422
 
423
+ ////キーボードに閉じるボタンをつける
424
+
425
+ func makeKeyboard(){
426
+
427
+ //仮のサイズでツールバー作成
428
+
429
+ let kbToolBar = UIToolbar(frame: CGRect(x: 0,y: 0, width: 320, height: 40))
430
+
431
+ kbToolBar.barStyle = UIBarStyle.default //スタイル設定
432
+
433
+ kbToolBar.sizeToFit() //画面に合わせてサイズ調整
434
+
435
+ //スペーサー
436
+
437
+ let spacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.fixedSpace, target: self, action: nil)
438
+
439
+ //閉じるボタン
440
+
441
+ let commitButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.done, target: self, action: #selector(ViewController.commitButtonTapped))
442
+
443
+ kbToolBar.items = [spacer, commitButton]
444
+
445
+ nameField.inputAccessoryView = kbToolBar
446
+
447
+ phoneNumberField.inputAccessoryView = kbToolBar
448
+
449
+ emailAddressField.inputAccessoryView = kbToolBar
450
+
451
+ givenNameField.inputAccessoryView = kbToolBar
452
+
453
+
454
+
455
+ }
456
+
255
- @objc func commitButtonTapped(){
457
+ @objc func commitButtonTapped(){
256
458
 
257
459
  self.view.endEditing(true)
258
460
 
@@ -262,12 +464,12 @@
262
464
 
263
465
  }
264
466
 
265
-
266
-
267
467
  ```
268
468
 
269
-
270
-
271
- ![手順②連絡先一覧](adca24e38170b7a0782ca74f643e9f8a.png)
469
+ ![1](792e714d2836d96ff1414512ab197ac0.png)
272
-
470
+
273
- ![手順②選択した人を表示](b5f713519bfae7c564b46fb8f18ca839.png)
471
+ ![2](b5f713519bfae7c564b46fb8f18ca839.png)
472
+
473
+ ![3](c3eccc4475c487ea202f0720b42f899f.png)
474
+
475
+ ![4](3f76d6229f819c2b92fcd5688030f80e.png)

1

コードを書き換えました。

2017/12/01 06:00

投稿

45tigris
45tigris

スコア14

test CHANGED
File without changes
test CHANGED
@@ -18,37 +18,41 @@
18
18
 
19
19
  チェックが消えていません。**
20
20
 
21
+ [CNLabeledValue<NSString>]のメールアドレスをStringに変換することはできないのでしょうか?
22
+
21
23
  ```ここに言語を入力
22
24
 
23
- //
24
-
25
- // ViewController.swift
26
-
27
- // ToAdressBook
28
-
29
- //
30
-
31
- // Created by admin on 2017/11/13.
32
-
33
- // Copyright © 2017年 css. All rights reserved.
34
-
35
- //
36
-
37
-
38
-
39
25
  import UIKit
40
26
 
41
27
  import Contacts
42
28
 
43
29
  import ContactsUI
44
30
 
45
-
46
-
47
31
  class ViewController: UIViewController, CNContactPickerDelegate, CNContactViewControllerDelegate {
48
32
 
33
+
34
+
35
+ @IBOutlet weak var nameField: UITextField!
36
+
37
+ @IBOutlet weak var phoneNumberField: UITextField!
38
+
39
+ @IBOutlet weak var emailAddressField: UITextField!
40
+
41
+ @IBOutlet weak var givenNameField: UITextField!
42
+
43
+ var target: [(name:String,email:[CNLabeledValue<NSString>],phNo:CNLabeledValue<CNPhoneNumber>)] = []
44
+
49
-   var nameList:[String] = []
45
+ var nameList:[String] = []
50
-
46
+
51
- let cnPicker = CNContactPickerViewController()
47
+ let cnPicker = CNContactPickerViewController()
48
+
49
+
50
+
51
+ func contactPickerDidCancel(_ picker: CNContactPickerViewController) {
52
+
53
+ print("ContactPickerキャンセルしたよ")
54
+
55
+ }
52
56
 
53
57
 
54
58
 
@@ -58,8 +62,6 @@
58
62
 
59
63
  print("飛んだよ")
60
64
 
61
- //ここが不安
62
-
63
65
  self.cnPicker.dismiss(animated: false) {
64
66
 
65
67
  print("閉じたよ?")
@@ -74,7 +76,7 @@
74
76
 
75
77
  preferredStyle: .alert)
76
78
 
77
- //アラートにアクション追加(各アクションのタイトルは選択した人の名前)
79
+ //アラートにアクション追加
78
80
 
79
81
  for i in 0..<mycount {
80
82
 
@@ -90,9 +92,15 @@
90
92
 
91
93
  print("(self.nameList[i])")
92
94
 
93
-
94
-
95
-              //ここで選択した人の情報をアラートで表示したい。
95
+ //人の情報をタプルから取得
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
96
104
 
97
105
  })
98
106
 
@@ -132,18 +140,34 @@
132
140
 
133
141
  }
134
142
 
135
- //「Done」ボタン押下で選択された人達の名前を表示
143
+ //「Done」ボタン押下で選択
136
-
144
+
137
- func contactPicker(_ picker: CNContactPickerViewController, didSelect contacts: [CNContact]){
145
+ private func contactPicker(_ picker: CNContactPickerViewController, didSelectContactProperty contacts: CNContactProperty){
146
+
147
+   //ここで選んだ複数人の情報をタプルで収納したいです。現在エラーになってしまう。
138
148
 
139
149
  contacts.forEach { contact in
140
150
 
141
- let names = contact.familyName + " " + contact.givenName
151
+ let names = contact.givenName + " " + contact.familyName
152
+
153
+ let emails = CNContactProperty.value?.description
154
+
155
+ let phoneNo = contact.phoneNumbers
156
+
157
+
142
158
 
143
159
  print("name is = (names)")
144
160
 
161
+ print("email is = (emails)")
162
+
163
+ print("phoneNo is = (phoneNo)")
164
+
145
165
  nameList.append(names)
146
166
 
167
+ //タプルの配列"target"に入れる
168
+
169
+ target.append((name:names,email:emails,phNo:phoneNo))
170
+
147
171
  }
148
172
 
149
173
  let count = nameList.count
@@ -152,9 +176,43 @@
152
176
 
153
177
  displayNameList(mycount:count)
154
178
 
155
-
156
-
179
+
180
+
157
- }
181
+ }
182
+
183
+ //func contactPicker(_ picker: CNContactPickerViewController, didSelect contacts: [CNContact]){
184
+
185
+ // contacts.forEach { contact in
186
+
187
+ // let names = contact.givenName + " " + contact.familyName
188
+
189
+ // let emails = CNContactProperty.value?.description
190
+
191
+ // let phoneNo = contact.phoneNumbers
192
+
193
+ //
194
+
195
+ // print("name is = (names)")
196
+
197
+ // print("email is = (emails)")
198
+
199
+ // print("phoneNo is = (phoneNo)")
200
+
201
+ // nameList.append(names)
202
+
203
+ // //タプルの配列"target"に入れる
204
+
205
+ // target.append((name:names,email:emails,phNo:phoneNo))
206
+
207
+ // }
208
+
209
+ // let count = nameList.count
210
+
211
+ // print("nameList = (nameList)")
212
+
213
+ // displayNameList(mycount:count)
214
+
215
+ //}
158
216
 
159
217
  //「一覧」ボタンを押下。連絡先を取得
160
218
 
@@ -176,11 +234,7 @@
176
234
 
177
235
 
178
236
 
179
- }
237
+ }
180
-
181
-
182
-
183
-
184
238
 
185
239
  override func viewDidLoad() {
186
240
 
@@ -190,8 +244,6 @@
190
244
 
191
245
  }
192
246
 
193
-
194
-
195
247
  override func didReceiveMemoryWarning() {
196
248
 
197
249
  super.didReceiveMemoryWarning()
@@ -200,9 +252,7 @@
200
252
 
201
253
  }
202
254
 
203
-
204
-
205
- @objc func commitButtonTapped(){
255
+ @objc func commitButtonTapped(){
206
256
 
207
257
  self.view.endEditing(true)
208
258
 
@@ -214,8 +264,6 @@
214
264
 
215
265
 
216
266
 
217
-
218
-
219
267
  ```
220
268
 
221
269