Problem using an OptionSet Type (CloudKitOptions)

I have the following code:


import Cocoa
import CloudKit
class ViewController: NSViewController {
    var shareOptionsSettingsForUser : NSSharingService.CloudKitOptions!
    override func viewDidLoad() {
        super.viewDidLoad()
        shareOptionsSettingsForUser = NSSharingService.CloudKitOptions.allowPublic
        print("shareOptionsSettingsForUser.contains(.standard): \(shareOptionsSettingsForUser.contains(.standard))")
        print("shareOptionsSettingsForUser.contains(.allowPublic): \(shareOptionsSettingsForUser.contains(.allowPublic))")
        print("shareOptionsSettingsForUser.contains(.allowPrivate): \(shareOptionsSettingsForUser.contains(.allowPrivate))")
        print("shareOptionsSettingsForUser.contains(.allowReadOnly): \(shareOptionsSettingsForUser.contains(.allowReadOnly))")
        print("shareOptionsSettingsForUser.contains(.allowReadWrite): \(shareOptionsSettingsForUser.contains(.allowReadWrite))")
    }
}


The console output is:


shareOptionsSettingsForUser.contains(.standard): true

shareOptionsSettingsForUser.contains(.allowPublic): true

shareOptionsSettingsForUser.contains(.allowPrivate): false

shareOptionsSettingsForUser.contains(.allowReadOnly): false

shareOptionsSettingsForUser.contains(.allowReadWrite): false


Could someone please explain me why shareOptionsSettingsForUser contains .standard?


I do not understand why if I set up the var shareOptionsSettingsForUser with a single option .allowPublic, why it also contains .standard

Replies

I will reply to myself what I think could be a possible answer.


I think that .standard is always included by Apple implementation of CloudKitOptions, so the developer can configure the share but at the same time leaving the user a way to modify the share options.