Removing Bit Flags in Swift Option Sets
This code creates the complete
.forbidAll
set and then removes the local restriction.var restrictions: AVAssetReferenceRestrictions = [ .forbidAll ] restrictions .remove(.forbidLocalReferenceToLocal)Interestingly, you can also pass
.forbidAll
without brackets in the current version of Swift and it will compile. […] I’m told that this option set syntax works because each element of an option set is itself an option set:[.forbidAll]
is the same type and equal to.forbidAll
. The array literal form of[.a, .b, .c]
is syntactic niceness for creating an empty option set and then inserting (i.e. bitwise OR) each element)
Or you can write:
let restrictions: AVAssetReferenceRestrictions = .forbidAll.subtracting(.forbidLocalReferenceToLocal)