swift - 有关 OptionSetType 的基本问题

标签 swift

我试图弄清楚 OptionSetType 协议(protocol),但我有一些基本问题。
1)options是Array类型还是Set类型?
2) 我可以使用 for...in 循环或 for 循环访问选项的每个元素吗
提前致谢

let options: NSDirectoryEnumerationOptions = [.SkipsHiddenFiles, .SkipsPackageDescendants, .SkipsSubdirectoryDescendants]

最佳答案

1) 没有

2) 没有

查看这个“不言自明”的片段

import Foundation

let options: NSDirectoryEnumerationOptions = [.SkipsHiddenFiles, .SkipsPackageDescendants, .SkipsSubdirectoryDescendants]

let res = options.rawValue == NSDirectoryEnumerationOptions.SkipsHiddenFiles.rawValue | NSDirectoryEnumerationOptions.SkipsPackageDescendants.rawValue | NSDirectoryEnumerationOptions.SkipsSubdirectoryDescendants.rawValue

print(res) // true
dump(options)
/*
▿ __C.NSDirectoryEnumerationOptions
  - rawValue: 7
*/

你可以用其他方式初始化它,得到相同的结果

let options2 = NSDirectoryEnumerationOptions(rawValue: NSDirectoryEnumerationOptions.SkipsHiddenFiles.rawValue | NSDirectoryEnumerationOptions.SkipsPackageDescendants.rawValue | NSDirectoryEnumerationOptions.SkipsSubdirectoryDescendants.rawValue)

options2 == options // true

关于swift - 有关 OptionSetType 的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861478/

相关文章:

ios - QueryEndingAtValue 函数在 Swift firebase 中无法正常工作

ios - 从 NSMutableArray 错误中删除值

swift - 如何在自定义 UIView 中隐藏键盘?

swift - 如何在Swift中使用核心图形绘制3D对象?

swift - 选择单元格时 SWRevealViewController 打开表格 View - Swift

ios - 表达式太复杂,无法在合理的时间内解决 (xcode)

ios - 无法看到数组中前 3 个 View Controller 的 .transitionFlipFromRight 动画

ios - titleForHeaderInSection 的文本太长

ios - 子串字符串并在它们之间进行比较

swift - 保存要解析的 UITextView 文本