回答編集履歴

3

ふんわりを形に。

2017/04/14 01:25

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -1,17 +1,39 @@
1
- GCDシリアルキューを使っ
1
+ 1. userRegister()、userLogin()、checkMessage()を同期関数にする。(userRegister()内userLogin()は削除しおくこと)
2
2
 
3
3
 
4
4
 
5
- 1. 新規登録の場合はuserRegister()をキューに積む。
6
-
7
- 2. userLogin()キューに積む
5
+ 2. GCD使って3つの処理を裏で実行する
8
-
9
- 3. 1と2の処理が終わったらcheckMessage()を実行する。
10
6
 
11
7
 
12
8
 
13
- (注意) 現在、userRegister()の中userLogin()が含まれていますが、これは削除しておきます
9
+ 同期関数化はセマフォなどを使っ下さい。
14
10
 
15
11
 
16
12
 
13
+ ---
17
14
 
15
+
16
+
17
+ サンプルコード(Swift2)
18
+
19
+
20
+
21
+ ```swift
22
+
23
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
24
+
25
+ if (新規登録) {
26
+
27
+ self.userRegister()
28
+
29
+ }
30
+
31
+ self.userLogin()
32
+
33
+ self.checkMessage()
34
+
35
+ }
36
+
37
+ ```
38
+
39
+

2

GCD

2017/04/14 01:25

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -1,59 +1,17 @@
1
- userLogin()引数でログイン後の処理渡すようにしみては?
1
+ GCDシリアルキュー使っ
2
2
 
3
3
 
4
4
 
5
- ```swift
5
+ 1. 新規登録の場合はuserRegister()をキューに積む。
6
6
 
7
- UserAPI.userLogin({
7
+ 2. userLogin()をキューに積む。
8
8
 
9
- UserAPI.checkMessage(result: { count in
9
+ 3. 1と2の処理が終わったらcheckMessage()を実行する。
10
-
11
- print(count) //ここでエラー
12
-
13
- /*
14
-
15
- ログイン後にメッセージ数取得を行わないといけない、
16
-
17
- かつ画面の更新も行いたい。
18
-
19
- */
20
-
21
- })
22
-
23
- })
24
-
25
- ```
26
10
 
27
11
 
28
12
 
29
- ```swift
30
-
31
- UserAPI.userRegister({
32
-
33
- UserAPI.userLogin({
34
-
35
- UserAPI.checkMessage(result: { count in
13
+ (注意) 現在、userRegister()の中にuserLogin()が含まれていますが、これは削除しておきます。
36
-
37
- print(count) //ここでエラー
38
-
39
- /*
40
-
41
- ログイン後にメッセージ数取得を行わないといけない、
42
-
43
- かつ画面の更新も行いたい。
44
-
45
- */
46
-
47
- })
48
-
49
- })
50
-
51
- })
52
-
53
- ```
54
14
 
55
15
 
56
16
 
57
- ※コードはイメージです
58
17
 
59
-

1

めんどくせぇ

2017/04/13 04:13

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -26,4 +26,34 @@
26
26
 
27
27
 
28
28
 
29
+ ```swift
30
+
31
+ UserAPI.userRegister({
32
+
33
+ UserAPI.userLogin({
34
+
35
+ UserAPI.checkMessage(result: { count in
36
+
37
+ print(count) //ここでエラー
38
+
39
+ /*
40
+
41
+ ログイン後にメッセージ数取得を行わないといけない、
42
+
43
+ かつ画面の更新も行いたい。
44
+
45
+ */
46
+
47
+ })
48
+
49
+ })
50
+
51
+ })
52
+
53
+ ```
54
+
55
+
56
+
29
57
  ※コードはイメージです
58
+
59
+