如何在Swift中使用NSStreamEvents



我在使用NSStream对象抛出的事件时遇到问题。

在obj C中,它是这样的:

- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent {
    switch (streamEvent) {
    case NSStreamEventOpenCompleted:
        NSLog(@"Stream opened");
        break;
    case NSStreamEventHasBytesAvailable:
        break;          
    case NSStreamEventErrorOccurred:
        NSLog(@"Can not connect to the host!");
        break;
    case NSStreamEventEndEncountered:
        break;
    default:
        NSLog(@"Unknown event");
    }
}

我如何在Swift中做到这一点?我不理解NSStreamEvent引用。在Obj C中是枚举,在swift中是结构。关于如何像上面的例子一样使用这个,有什么想法吗?

NSStreamEvent符合Swift 2中的OptionSetType:它被定义为一个struct,每个可能的值都有static var s,所以你可以像枚举一样使用它。

来自枚举:

在Swift中,选项集由符合OptionSetType协议的结构表示,每个选项值都有静态变量。选项集的行为与Swift的Set集合类型类似。使用insert(_:)unionInPlace(_:)方法添加选项值,使用remove(_:)subtractInPlace(_:)方法删除选项值,并使用contains(_:)方法检查选项值。使用数组文字创建一个新的选项集值,使用类似于枚举的前导点(.)访问选项值。可以从空数组文字([])或通过调用其默认初始值设定项来创建空选项集。

相关内容

  • 没有找到相关文章

最新更新