如何在Swift中使用NSStreamEvents?

问题描述:

我无法使用我的NSStream对象抛出的事件。如何在Swift中使用NSStreamEvents?

在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"); 
    } 
} 

我怎么做,在斯威夫特?我不明白NSStreamEvent参考。在Obj C中它是一个枚举并且在swift中是一个结构体。关于如何使用这个像上面的例子的任何想法?

NSStreamEvent符合OptionSetType斯威夫特2:它被定义为structstatic var S代表每个可能的值,所以你可以使用它像一个枚举。

Enumerations

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