ios - 关于swift中 "NSStringCompareOptions"struct document的一些问题

标签 ios iphone swift

我只是停留在解释“NSStringCompareOptions”如何工作的 swift 文档中。只是一些新问题。

struct NSStringCompareOptions : OptionSetType {
init(rawValue rawValue: UInt)
static var CaseInsensitiveSearch: NSStringCompareOptions { get }
static var LiteralSearch: NSStringCompareOptions { get }
static var BackwardsSearch: NSStringCompareOptions { get }
static var AnchoredSearch: NSStringCompareOptions { get }
static var NumericSearch: NSStringCompareOptions { get }
static var DiacriticInsensitiveSearch: NSStringCompareOptions { get }
static var WidthInsensitiveSearch: NSStringCompareOptions { get }
static var ForcedOrderingSearch: NSStringCompareOptions { get }
static var RegularExpressionSearch: NSStringCompareOptions { get }
}

当我调用 NSStringCompareOptions() 时,这个结构中包含“init” 为什么它允许省略 init 方法“rawValue”?

还有一个问题是我知道

NSStringCompareOptions() 

是新版本吗

NSStringCompareOptions.allZero

意思是“没有选择”

那么下面两者有什么不同呢?

NSStringCompareOptions()

NSStringCompareOptions(rawValue:0)

非常感谢你帮助我。

最佳答案

为了更好地理解,您应该查看 OptionSetType 的定义, NSStringCompareOptions 遵循的协议(protocol)。

除了基本的协议(protocol)定义之外,您还会发现一些扩展:

extension OptionSetType where RawValue : BitwiseOperationsType {
    /// Create an empty instance.
    ///
    /// - Equivalent to `[] as Self`
    public convenience init()
    ...
}

还有 SetAlgebraType OptionSetType 符合的协议(protocol):

extension SetAlgebraType {
    /// Creates the set containing all elements of `sequence`.
    public convenience init<S : SequenceType where S.Generator.Element == Element>(_ sequence: S)
    ...
}

这些方法在协议(protocol)扩展中的事实表明它们具有自动提供的默认实现。

您可以在 Using Swift with Cocoa and Objective-C 中阅读有关选项集的更多信息.

关于ios - 关于swift中 "NSStringCompareOptions"struct document的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35818943/

相关文章:

ios 快速搜索栏颜色更改

ios - 我能否访问我的应用程序沙箱范围之外的其他 iOS 应用程序的信息?

iphone - iOS 图片上传,ASIHttpRequest 以外的第三方 api

iphone - 在 uitextfield 中滑动

ios - UIAlertController 的 NSNotification

ios - 如何将用 Swift 编写的 Cocoa Touch Framework 导入 .pch 文件?

iOS Objective-C : Support Right To Left

iphone - 在 XCODE 4.2 中崩溃时线程不会停在实际的代码行

ios - 从 1 个 swift UISPLITVIEWCONTROLLER 中的更多 2 个类加载

iphone - 仅在导航弹出后分组 UITableViewCell 上才会出现黑色角