回答編集履歴
1
データ監視の終了について追記
answer
CHANGED
@@ -6,8 +6,11 @@
|
|
6
6
|
|
7
7
|
- Timerを使って自分で監視する必要はないので、observeを一度だけ呼ぶ
|
8
8
|
- データ更新のたびにhogearrayに全要素を追加していく処理はやめる
|
9
|
+
- データの監視を終えるときにremoveObserverWithHandleを呼ぶ
|
9
10
|
|
10
11
|
```swift
|
12
|
+
private var observer: UInt = 0
|
13
|
+
|
11
14
|
// 修正例
|
12
15
|
override func viewDidLoad() {
|
13
16
|
super.viewDidLoad()
|
@@ -15,7 +18,7 @@
|
|
15
18
|
DBRef = Database.database().reference()
|
16
19
|
|
17
20
|
let defaultPlace = DBRef.child("table/orderorder")
|
18
|
-
defaultPlace.observe(.value, with: { snapshot in
|
21
|
+
self.observer = defaultPlace.observe(.value, with: { snapshot in
|
19
22
|
var array: [String] = []
|
20
23
|
for item in (snapshot.children) {
|
21
24
|
let snapshot = item as! DataSnapshot
|
@@ -32,4 +35,10 @@
|
|
32
35
|
}
|
33
36
|
})
|
34
37
|
}
|
38
|
+
|
39
|
+
// データ監視の終了の例(タイミングは適当です)
|
40
|
+
override func viewDidUnload() {
|
41
|
+
super.viewDidUnload();
|
42
|
+
DBRef.child("table/orderorder").removeObserver(withHandle: self.observer)
|
43
|
+
}
|
35
44
|
```
|