質問編集履歴

2

import Foundationの書き忘れを修正

2020/08/03 11:09

投稿

kijikiji
kijikiji

スコア0

test CHANGED
File without changes
test CHANGED
@@ -31,6 +31,10 @@
31
31
  試しに100回ループさせたところ途中でクラッシュしました。
32
32
 
33
33
  ```swift
34
+
35
+ import Foundation
36
+
37
+
34
38
 
35
39
  test(url: "",num: 0);
36
40
 

1

コードを記載いたしました。

2020/08/03 11:09

投稿

kijikiji
kijikiji

スコア0

test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,71 @@
23
23
  https://www.366service.com/jp/qa/9033c51b6c877350e25c2dc2a562099e
24
24
 
25
25
  実機でもクラッシュが起きたので、違うと考えていますが、appleのバグという可能性もあるのでしょうか。
26
+
27
+
28
+
29
+ 以下にPlaygroundで動作確認したコードを記述いたします。
30
+
31
+ 試しに100回ループさせたところ途中でクラッシュしました。
32
+
33
+ ```swift
34
+
35
+ test(url: "",num: 0);
36
+
37
+
38
+
39
+ func test(url:String, num:Int){
40
+
41
+
42
+
43
+ requestSync(urlString: url) {
44
+
45
+ print(num)
46
+
47
+ if(num < 100){
48
+
49
+ test(url: url, num: num + 1)
50
+
51
+ }
52
+
53
+
54
+
55
+ }
56
+
57
+ }
58
+
59
+
60
+
61
+ func requestSync(urlString:String,handler:@escaping()->Void){
62
+
63
+
64
+
65
+ let semaphore = DispatchSemaphore(value: 0)
66
+
67
+
68
+
69
+ let session = URLSession(configuration: .default)
70
+
71
+ let url = URL(string: urlString)!
72
+
73
+ let request = URLRequest(url: url)
74
+
75
+
76
+
77
+ let task = session.dataTask(with: request) { (data, response, error) in
78
+
79
+ handler()
80
+
81
+ semaphore.signal()
82
+
83
+ }
84
+
85
+
86
+
87
+ task.resume()
88
+
89
+ semaphore.wait()
90
+
91
+ }
92
+
93
+ ```