teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

import Foundationの書き忘れを修正

2020/08/03 11:09

投稿

kijikiji
kijikiji

スコア0

title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,8 @@
15
15
  以下にPlaygroundで動作確認したコードを記述いたします。
16
16
  試しに100回ループさせたところ途中でクラッシュしました。
17
17
  ```swift
18
+ import Foundation
19
+
18
20
  test(url: "",num: 0);
19
21
 
20
22
  func test(url:String, num:Int){

1

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

2020/08/03 11:09

投稿

kijikiji
kijikiji

スコア0

title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,38 @@
10
10
 
11
11
  調べたところ、以下のような記事が見つかりました。
12
12
  https://www.366service.com/jp/qa/9033c51b6c877350e25c2dc2a562099e
13
- 実機でもクラッシュが起きたので、違うと考えていますが、appleのバグという可能性もあるのでしょうか。
13
+ 実機でもクラッシュが起きたので、違うと考えていますが、appleのバグという可能性もあるのでしょうか。
14
+
15
+ 以下にPlaygroundで動作確認したコードを記述いたします。
16
+ 試しに100回ループさせたところ途中でクラッシュしました。
17
+ ```swift
18
+ test(url: "",num: 0);
19
+
20
+ func test(url:String, num:Int){
21
+
22
+ requestSync(urlString: url) {
23
+ print(num)
24
+ if(num < 100){
25
+ test(url: url, num: num + 1)
26
+ }
27
+
28
+ }
29
+ }
30
+
31
+ func requestSync(urlString:String,handler:@escaping()->Void){
32
+
33
+ let semaphore = DispatchSemaphore(value: 0)
34
+
35
+ let session = URLSession(configuration: .default)
36
+ let url = URL(string: urlString)!
37
+ let request = URLRequest(url: url)
38
+
39
+ let task = session.dataTask(with: request) { (data, response, error) in
40
+ handler()
41
+ semaphore.signal()
42
+ }
43
+
44
+ task.resume()
45
+ semaphore.wait()
46
+ }
47
+ ```