85810
[GitHubのコード](https://github.com/lhuanyu/ARScreenRecorder/blob/master/ARKitInteraction/ARScreenRecorder.swift)で、以下のようなものがありました。

```

    func stopRecording(_ completion: ((Bool) -> Void)? = nil) {
        if isRecording {
            isRecording = false
            assetWriter?.finishWriting {
                print("Finish Writing.")
                self.saveFileToCameraRoll(completion)
            }
        }
    }
    
```

この、stopRecording関数を呼び出すとき、引数はどのようにもたせれば良いのでしょうか。

以下のようなコードで、録画開始と録画終了をしても、カメラロールに動画が保存されなかったので、引数の問題かと思ったのですが別の問題でしょうか。

```

    let arScreenRecorder = ARScreenRecorder.shared
    
    //録画開始
    self.arScreenRecorder.startRecording(with: sceneView)
    
    //録画終了
    arScreenRecorder.stopRecording()
    
```
CC BY-SA 4.0
2022-01-20T01:52:25.003
85808
2022-01-20T04:33:41.367
36446
question
swift
Swiftの引数　(_ completion: ((Bool) -> Void)? = nil)　の意味と使い方について
`((Bool) -> Void)?`は引数がBool一つで、返り値なしのクロージャーのオプショナル型です。

そしてこの引数Boolは成功の時`true`で、失敗の時`false`のようです。  
[func saveFileToCameraRoll(_ completion: ((Bool) -> Void)? =
nil)](https://github.com/lhuanyu/ARScreenRecorder/blob/08304f1b3ba4aec925cea9c5914926231b2c906e/ARKitInteraction/ARScreenRecorder.swift#L115)

処理が終了したときに実行したい何かがあれば、引数を渡してあげたほうがいいですが、今回のカメラロールに保存されない問題とはまた違うと思われます。

カメラロールへの保存の権限回りのような気がします。

あっているかわかりませんが、ここら辺の記事が参考になるともいます。  
[【Swift】UIImageViewに表示された画像を端末に保存しよう](https://qiita.com/misakiagata/items/eb6a2285ae341b480eca)
CC BY-SA 4.0
2022-01-20T04:33:41.367
85810
2022-01-20T04:33:41.367
40856
85808
answer