回答編集履歴
3
ふんわりを形に。
answer
CHANGED
@@ -1,8 +1,19 @@
|
|
1
|
-
|
1
|
+
1. userRegister()、userLogin()、checkMessage()を同期関数にする。(userRegister()内のuserLogin()は削除しておくこと)
|
2
2
|
|
3
|
-
1. 新規登録の場合はuserRegister()をキューに積む。
|
4
|
-
2.
|
3
|
+
2. GCDを使って3つの処理を裏で実行する。
|
5
|
-
3. 1と2の処理が終わったらcheckMessage()を実行する。
|
6
4
|
|
7
|
-
|
5
|
+
同期関数化にはセマフォなどを使って下さい。
|
8
6
|
|
7
|
+
---
|
8
|
+
|
9
|
+
サンプルコード(Swift2)
|
10
|
+
|
11
|
+
```swift
|
12
|
+
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
|
13
|
+
if (新規登録) {
|
14
|
+
self.userRegister()
|
15
|
+
}
|
16
|
+
self.userLogin()
|
17
|
+
self.checkMessage()
|
18
|
+
}
|
19
|
+
```
|
2
GCD
answer
CHANGED
@@ -1,29 +1,8 @@
|
|
1
|
-
|
1
|
+
GCDのシリアルキューを使って、
|
2
2
|
|
3
|
-
|
3
|
+
1. 新規登録の場合はuserRegister()をキューに積む。
|
4
|
-
|
4
|
+
2. userLogin()をキューに積む。
|
5
|
-
|
5
|
+
3. 1と2の処理が終わったらcheckMessage()を実行する。
|
6
|
-
print(count) //ここでエラー
|
7
|
-
/*
|
8
|
-
ログイン後にメッセージ数取得を行わないといけない、
|
9
|
-
かつ画面の更新も行いたい。
|
10
|
-
*/
|
11
|
-
})
|
12
|
-
})
|
13
|
-
```
|
14
6
|
|
15
|
-
```swift
|
16
|
-
UserAPI.userRegister({
|
17
|
-
UserAPI.userLogin({
|
18
|
-
|
7
|
+
(注意) 現在、userRegister()の中にuserLogin()が含まれていますが、これは削除しておきます。
|
19
|
-
print(count) //ここでエラー
|
20
|
-
/*
|
21
|
-
ログイン後にメッセージ数取得を行わないといけない、
|
22
|
-
かつ画面の更新も行いたい。
|
23
|
-
*/
|
24
|
-
})
|
25
|
-
})
|
26
|
-
})
|
27
|
-
```
|
28
8
|
|
29
|
-
※コードはイメージです
|
1
めんどくせぇ
answer
CHANGED
@@ -12,4 +12,18 @@
|
|
12
12
|
})
|
13
13
|
```
|
14
14
|
|
15
|
+
```swift
|
16
|
+
UserAPI.userRegister({
|
17
|
+
UserAPI.userLogin({
|
18
|
+
UserAPI.checkMessage(result: { count in
|
19
|
+
print(count) //ここでエラー
|
20
|
+
/*
|
21
|
+
ログイン後にメッセージ数取得を行わないといけない、
|
22
|
+
かつ画面の更新も行いたい。
|
23
|
+
*/
|
24
|
+
})
|
25
|
+
})
|
26
|
+
})
|
27
|
+
```
|
28
|
+
|
15
|
-
※コードはイメージです
|
29
|
+
※コードはイメージです
|