I am just trying to set two flags for the debug options. Why is this a problem in Swift 4
            Asked
            
        
        
            Active
            
        
            Viewed 1,027 times
        
    3
            
            
        - 
                    Same problem as in https://stackoverflow.com/questions/30761996/swift-2-0-binary-operator-cannot-be-applied-to-two-uiusernotificationtype and https://stackoverflow.com/questions/30867325/binary-operator-cannot-be-applied-to-two-uiviewautoresizing-operands (from the "Related" section). – Martin R Jun 13 '17 at 05:18
2 Answers
9
            
            
        instead of doing "|", use a set:
sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints,ARSCNDebugOptions.showWorldOrigin]
 
    
    
        Michael Dautermann
        
- 88,797
- 17
- 166
- 215
0
            
            
        SCNDebugOptions confirm the protocol OptionSet, which confirm SetAlgebra protocol and SetAlgebra confirm ExpressibleByArrayLiteral protocol. 
public struct SCNDebugOptions : OptionSet {...}
protocol OptionSet : RawRepresentable, SetAlgebra {...}
public protocol SetAlgebra : Equatable, ExpressibleByArrayLiteral {...}
That's why you can't use the pipe (|) sign for multiple arguments. instead, use an array.
sceneView.debugOptions = [.showFeaturePoints, .showWorldOrigin]
 
    
    
        Tapas Pal
        
- 7,073
- 8
- 39
- 86

 
    